たとえば、2つのテーブルには多数の(または1つの)関係があります。著者と書籍。たとえば、これが新しい著者であり、本が書かれていないかどうかを確認したいとします。SQLite3 - LEFT JOINが他のRDBMSと異なるのはなぜですか?
SELECT authors.id
FROM authors
LEFT JOIN books ON authors.id = books.author_id AND books.id IS NULL
これは、任意のRDBMSで正しく動作します:MySQLの、PostgreSQLのは、SQL Server、Oracleのかもしれないではなく、SQLite3の中で。正しく動作させるには
SELECT authors.id
FROM authors
LEFT JOIN books ON authors.id = books.author_id
WHERE books.id IS NULL
:SQLite3のでは最後の部分は、WHERE
に移動する必要があります。どうして?
玩具データベースはそうです。彼らは非常に大多数のユースケースを扱うので、非常に便利ですが、多くの欠点を抱えて生きることを学ぶ必要があります。 – dasblinkenlight