Mysql 给定这些表,我将如何选择所有未标记的案例?
一个用户可以有无限数量的案例,一个案例可以有零个或多个标签。如何选择未标记的所有指定用户案例?我正在使用MySQLMysql 给定这些表,我将如何选择所有未标记的案例?,mysql,sql,database,Mysql,Sql,Database,一个用户可以有无限数量的案例,一个案例可以有零个或多个标签。如何选择未标记的所有指定用户案例?我正在使用MySQL cases: id INT owner_id INT title TEXT tags: id INT owner_id INT name TEXT case_tag (the pivot table): id INT case_id INT tag_id INT us
cases:
id INT
owner_id INT
title TEXT
tags:
id INT
owner_id INT
name TEXT
case_tag (the pivot table):
id INT
case_id INT
tag_id INT
users:
id INT
username VARCHAR
查询的作用是基本上选择表case\u tag
上没有匹配记录的所有用户的所有案例
要进一步了解加入的更多信息,请访问以下链接:
左连接的替代方法是不存在
SELECT a.*, b.*
FROM users a
INNER JOIN cases b
ON a.id = c.owner_id
WHERE NOT EXISTS
(
SELECT NULL
FROM case_tag c
WHERE b.id = c.case_id
)
查询的作用是基本上选择表case\u tag
上没有匹配记录的所有用户的所有案例
要进一步了解加入的更多信息,请访问以下链接:
使用左连接的替代方法是不存在
SELECT a.*, b.*
FROM users a
INNER JOIN cases b
ON a.id = c.owner_id
WHERE NOT EXISTS
(
SELECT NULL
FROM case_tag c
WHERE b.id = c.case_id
)
试一试
试一试
SELECT u.*, c.*
FROM users u JOIN cases c ON u.id=c.owner_id LEFT JOIN case_tags ct ON c.id=ct.case_id
WHERE ct.id IS NULL