SQLを学ぼうとしているときに、「Learn SQL The Hard Way」に出くわし、読み始めました。すべてが順調に進んでいたので、練習の方法として、本にある例のようなものを作成することを考えました (例は、pet、person、person_pet の 3 つのテーブルで構成され、person_pet テーブルはペットを所有者に「リンク」します)。
私はこれを作りました:
report table
+----+-------------+
| id | content |
+----+-------------+
| 1 | bank robbery|
| 2 | invalid |
| 3 | cat on tree |
+----+-------------+
notes table
+-----------+--------------------+
| report_id | content |
+-----------+--------------------+
| 1 | they had guns |
| 3 | cat was saved |
+-----------+--------------------+
wanted result
+-----------+--------------------+---------------+
| report_id | report_content | report_notes |
+-----------+--------------------+---------------+
| 1 | bank robbery | they had guns |
| 2 | invalid | null or '' |
| 3 | cat on tree | cat was saved |
+-----------+--------------------+---------------+
いくつかの組み合わせを試しましたが、成功しませんでした。
私の最初の考えは
SELECT report.id,report.content AS report_content,note.content AS note_content
FROM report,note
WHERE report.id = note.report_id
ただし、これは一致するもののみを返します (無効なレポートは返されません)。この後、IF条件を追加しようとしましたが、悪化しました。
私の質問は、これは基本的なSQLを通過した後に理解するものですか、それとも簡単な方法で行うことができますか?
とにかく、助けていただければ幸いです。これでほとんど負けました。
ありがとうございました。
編集:関連する質問を調べましたが、私の問題を解決する質問はまだ見つかりません。これを整理するには、おそらく join などの他のステートメントを調べる必要があります。