12

簡単にするために、外部キーを使用して1対多に関連する2つのテーブルがあります。次に例を示します。

Users table:
id
name

Actions table:
id
user_id

1人のユーザーが多くのアクションを実行する場合としない場合があります。アクションテーブルにuser_id値を持たないユーザーIDを返すSQLSelectが必要です。

Users Table:
id      name
1       John
2       Smith
3       Alice

Actions Table:
id      user_id
1       3
2       1

したがって、外部キー値にはID 2が含まれていないため、ユーザーID 2(Smith)を返すSQLクエリが必要です。

次のSQLを試しましたが、すべてのユーザーIDが返されます。

SELECT users.id from users left join actions on actions.user_id is null
4

3 に答える 3

18
select u.id
from users u
left outer join actions a on a.user_id = u.id
where a.user_id is null
于 2012-10-28T11:55:01.697 に答える
3

最適化されたバージョンは次のようになります。

SELECT u.id
FROM users u
LEFT JOIN actions a
ON a.user_id = u.id
AND ISNULL(a.user_id)
于 2012-10-28T12:00:35.290 に答える
2
SELECT u.id
FROM users u
LEFT JOIN actions a
   ON a.user_id = u.id
WHERE a.user_id IS NULL
于 2012-10-28T11:55:49.207 に答える