私はダイナーステーブルを持っています:
NAME | FOOD
-----------------
matthew | rice
matthew | beans
mark | rice
mark | beans
Luke | rice
john | beans
米のみを含む名前、豆のみを含む名前、およびその両方を抽出する必要があります。それらが別々のテーブルにある場合、LEFT JOINは機能します。しかし、それらが 1 つのテーブルにあるため、問題が発生しています。
これら2つのステートメントのバリエーションを試してみましたが、うまくいきませんでした:
SELECT name
FROM diners
WHERE NOT EXISTS
(SELECT name
FROM diners
WHERE food = 'beans')
SELECT t1.name FROM diners AS t1
LEFT JOIN diners AS t2 ON t1.name = t2.name
WHERE t2.food = 'rice'
AND t2.name IS NULL