表:
users (id, name)
permissions (id, area_id, user_id)
我想选择所有没有 area_id 的用户,让我们在权限表中说 5。
在表之间进行左连接,在 ON 子句中检查相关的 area_id(因此,如果没有匹配的记录,仍然会带回左表行),但是在 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
SELECT user.* FROM USER
INNER JOIN permissions ON
(user.id=permissions.user_id AND permissions.area_id=0)
希望它会帮助你。