mysql - 在单独的表中选择 id 未链接到用户的行

标签 mysql

我有三个表,一个是用户表,一个是案例表,一个是用户和案例之间的链接。多个用户可以链接到一个案例。例如,假设有问题的用户 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/

相关文章:

php - 在两 (2) 个日期之间,列的日期格式为 (Y-m-d)

php - PGM Mysql PDO WHEN 或 IF 语句

php - 重新启动 While 循环

php - 相同的形式但有输入做其他事情

mysql - couchdb 可以做循环吗

mysql - MySQL中的 "<=>"是什么意思?

mysql select查询不同表比较

php - 查询执行问题

database - 重新安装脚本会清除我已填充的数据库

mysql - 加载 MAMP PRO 起始页/MAMP 起始页