-2

テーブル:

   users (id, name)
   permissions (id, area_id, user_id)

area_id を持っていないすべてのユーザーを選択したい場合は、権限テーブルで 5 とします。

4

2 に答える 2

3

テーブル間で左結合を行い、関連する area_id を ON 句にチェックします (したがって、一致するレコードがない場合でもテーブルの左側の行が戻されます) が、WHERE 句のチェックでは一致するレコードがありませんでした。

SELECT a.*
FROM users a
LEFT OUTER JOIN permissions b
ON a.id = b.user_id
AND b.area_id = 5
WHERE b.id IS NULL
于 2013-07-05T10:45:27.187 に答える