したがって、2つの異なるテーブルから物事をプルするための単純な結合を使用してMySQLクエリを作成しようとしています。
最初のテーブルは学生のテーブルです(申し訳ありませんが、それらを入れるためのより良い方法を見つけることができませんでした)
id first_name last_name major phone_number
-------------------------------------------------
1 Eric Larsen CS 1234567891
2 Sam Coons English 1234567891
3 David Brown MAE 1234567891
4 Richard Brown CS 1234567891
5 Kendra Griffiths FCHD 1234567891
2つ目はスコアテーブルで、1行だけでリッチになりました。
id student_id item_id score
------------------------------
1 1 1 20
アイテムのリストを含む3番目のテーブルがありますが、この特定のクエリには実際には必要ありません。
スコアのスコアとともにすべての学生をプルしたいと思います。スコアがある場合はitem_id=1ですが、そうでない場合でも、学生の情報をプルしたいのですが、少なくとも名前はあります。
これが私が書いたクエリです。
SELECT students.first_name, students.last_name, scores.score
FROM students
LEFT JOIN scores
ON students.id = scores.student_id
WHERE scores.item_id =1
私の考えでは、これはうまくいくはずです。左の結合であるため、スコアがなくてもすべての生徒を引っ張るはずですが、スコアが1人の生徒だけを引っ張っています。EricLarsen、結果は次のようになります。
Eric, Larsen, 20
しかし、そうであるべきではありません:
first_name last_name score
----------------------------
Eric Larsen 20
Sam Coons NULL
David Brown NULL
Richard Brown NULL
Kendra Griffiths NULL
?