1. ホーム
  2. sql

[解決済み] 注文のないすべての顧客を取得するSQLステートメント

2022-02-17 11:59:10

質問

典型的なPersonsテーブルとOrdersテーブルを定義し、以下のようなJOINクエリを実行して、すべてのPersonsのOrdersを返せるようにしました。

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo
FROM Persons
INNER JOIN Orders
ON Persons.id=Orders.Person_id

問題は、注文がないPersonをすべて返すステートメントをどのように書けばよいかということです。

mysqlを使用しています。

よろしくお願いします。

どのように解決するのですか?

を使用することができます。 LEFT JOINIS NULL :

SELECT     Persons.LastName, Persons.FirstName
FROM       Persons
LEFT JOIN  Orders ON Persons.id = Orders.Person_id
WHERE      Orders.Person_id IS NULL;

左結合の結果には、結合条件で右テーブル(Orders)に一致するレコードが見つからない場合でも、常に左テーブル(Persons)のすべてのレコードが含まれます。一致するレコードがない場合、"right"テーブルのカラムは、以下のようになります。 NULL を結果セットに追加します。