mysql,多表连接WHERE子句

时间:2017-01-16 01:22:35

标签: mysql join

我使用Mysql并且我很难尝试从SELECT查询中获取结果。我有两张桌子。第一桌果酱和第二桌jadwalblok。此表中的数据是静态的:

select * from jam
idjam nmjam
01    09.00-09.50
02    10.00-10.50
03    11.00-11.50
04    12.00-13.00   

select * from jadwalblok
idjadwal idjam ruang tgl
1        01    601   2017-04-24
2        03    602   2017-04-25

我使用连接来获得结果。

SELECT jam.idjam,
       jam.nmjam,
       jadwalblok.idruang,
       jadwalblok.tgl
FROM jam
LEFT JOIN jadwalblok ON jadwalblok.idjam = jam.idjam
WHERE jadwalblok.tgl='2017-04-24'

但我得不到正确的结果。我想要的结果如下所示:

idjam nmjam        ruang tgl
01    09.00-09.50  601   2017-04-24
02    10.00-10.50  null  null
03    11.00-11.50  null  null
04    12.00-13.00  null  null

1 个答案:

答案 0 :(得分:2)

您需要将jadwalblok.tgl='2017-04-24'条件从where子句移动到连接条件,因为在加入2个表后应用where子句,而在此期间应用连接条件加入:

SELECT jam.idjam,
       jam.nmjam,
       jadwalblok.idruang,
       jadwalblok.tgl
FROM jam
LEFT JOIN jadwalblok ON jadwalblok.idjam = jam.idjam and jadwalblok.tgl='2017-04-24'