我有三个表,一个是用户表,一个是案例表,一个是用户和案例之间的链接。多个用户可以链接到一个案例。例如,假设有问题的用户 ID 是“18”:
CASES
id | other columns
-------------------------
001 | n/a
002 | n/a
003 | n/a
LINKS
case_id | user_id
-------------------------
001 | 12
001 | 18
003 | 06
002 | 05
如您所见,案例 001 关联了两个用户,一个是我们的用户“18”,另外 2 个案例没有关联用户“18”。
所以问题是—— 如何选择所有没有链接到用户 ID 18 的情况? (结果将是案例 002 和 003,因为没有行将这些案例链接到用户 18)
最佳答案
可以使用NOT EXISTS
SELECT id FROM Cases C
WHERE NOT EXISTS (
SELECT * FROM Links L WHERE L.case_id = C.id AND L.user_Id = @userId)
关于mysql - 在单独的表中选择 id 未链接到用户的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9100359/