2017-01-16 15 views
0

私はMysqlを使用していますが、SELECTクエリから結果を取得しようとすると難しくなります。私は2つのテーブルを持っています。最初のテーブルジャムと2番目のテーブルjadwalblok。この表のデータは静的です:mysql、WHERE句を使用する複数のテーブルの結合

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 
+0

次回は、クエリを実行すると結果が表示されます。これは大きな助けになります。この特定のケースでは、何が間違っていたのかを判断することができましたが、これはもっと複雑なクエリの場合には当てはまりません。 – Shadow

答えて

2

参加条件が中に適用されている間あなたは、where句は2つのテーブルが結合された後に適用されるため、結合条件にwhere句からjadwalblok.tgl='2017-04-24'基準を移動する必要があります。以下のように私は結果が欲しいです参加:

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' 
関連する問題