簡単にするために、2 つのテーブルがあるとします...
users:
user_id
name
age
clothing:
user_id
type
color
21 歳で、シャツをまったく持っていないか、シャツを持っているが赤いシャツを持っていないすべてのユーザーを選択するにはどうすればよいでしょうか? これまでの私の試みは次のように見えました...
SELECT users.user_id
FROM users LEFT JOIN clothing
ON users.user_id = clothing.user_id
AND clothing.type = shirt
AND clothing.color != red
WHERE users.age = 21;
clothing
ユーザーがテーブルにエントリを持っていないエントリを選択したいだけの場合( WHERE clothing.user_id IS NULL
)、このクエリを実行する方法は知っていますが、そのロジックをこの少し複雑なケースに拡張することはできないようです。