BOOK
、および の3 つのエンティティまたはテーブルがSCIENCE
ありFICTION
ます。SCIENCE
と呼ばれる外部キーFICTION
を介して接続されます。と呼ばれる別のフィールドも含まれています。BOOK
ISBN
BOOK
AUTHOR
サイエンスまたはフィクションの本を書いているすべての著者を選択したいと思います。2 本の著者が同じ場合は、両方の記録を保持する必要があります。
私は次の解決策を思いつきました(明らかに正しくありません):
SELECT BOOK.AUTHOR AS AUTHOR FROM BOOK, FICTION, SCIENCE
WHERE BOOK.ISBN = FICTION.ISBN OR BOOK.ISBN = SCIENCE.ISBN;
しかし、正しいものは次のとおりです。
SELECT BOOK.AUTHOR AS AUTHOR FROM BOOK, FICTION
WHERE BOOK.ISBN = FICTION.ISBN
UNION ALL
SELECT BOOK.AUTHOR AS AUTHOR FROM BOOK, SCIENCE
WHERE BOOK.ISBN = SCIENCE.ISBN;
実際、それらは異なる結果を生み出します。私のクエリは、より多くのレコードを返します。クエリの何が問題になっていますか? 私のクエリとその下の「正しい」クエリの違いは何ですか?