所以这有点奇怪,因为我以前从未处理过这个问题。我有一个包含 4 个基本连接的数据集,用于查找编辑、创建记录集的用户。
SELECT `tasks`.`id`, `tasks`.`title`, `tasks`.`description`, `tasks`.`created_ts`, `tasks`.`modified_ts`,
assigned_user_id,
`u1`.`id` AS `assigned_to_id`,
`u1`.`firstname` AS `assigned_to_firstname`,
`u1`.`surname` AS `assigned_to_surname`,
`u2`.`id` AS `author_id`,
`u2`.`firstname` AS `author_firstname`,
`u2`.`surname` AS `author_surname`,
`u3`.`id` AS `modified_by_id`,
`u3`.`firstname` AS `modified_by_firstname`,
`u3`.`surname` AS `modified_by_surname`,
`t1`.`id`AS `priority_id`,
`t1`.`priority` AS `priority_priority`,
author_user_id,
modified_by_user_id,
type_priority_id
FROM tasks
LEFT OUTER JOIN `users` u1 ON `u1`.`id` = `tasks`.`assigned_user_id`
LEFT JOIN `users` u2 ON `u2`.`id` = `tasks`.`author_user_id`
LEFT JOIN `users` u3 ON `u3`.`id` = `tasks`.`modified_by_user_id`
LEFT JOIN `type_priority` t1 ON `tasks`.`type_priority_id` = `t1`.`id`
LIMIT 100
当我运行这个查询时,我只得到一个特定用户(ID:1)的结果。它只是跳过与不同用户连接的所有其他记录。有趣的是,当我不从用户表(u1、u2 和 u3)中选择字段时,我得到了我期望的所有结果。