我试图运行与其他2个表连接的SQL查询。 但是,我仍然需要在此查询中使用WHERE条件,该条件使用主表的id。在这种情况下,主表是时间表。
我已尝试过以下操作,但根本没有返回任何行:
SELECT * FROM `timesheets` t
INNER JOIN `users` u ON `t`.`teacher_id` = `u`.`id`
INNER JOIN `schools` s ON `t`.`school_id` = `s`.`id`
WHERE t.id = 46
在这个示例中,我尝试过滤到ID为46的行,肯定存在。
如果我只对时间表表进行简单查询,其中id = 46
的条件相同,则返回该特定行。
使用EXPLAIN时,我会在' extra'中收到此消息。柱:
不可能在阅读const表后注意到
任何想法我做错了什么?
答案 0 :(得分:0)
由于您使用了INNER JOIN,因此仅当表用户和学校主键在时间表中用作外键时才会返回数据。
使用左连接
SELECT * FROM timesheets t
LEFT JOIN users u ON t.teacher_id = u.id
LEFT JOIN schools s ON t.school_id = s.id
WHERE t.id = 46