mysql - 从一个表中查找不存在于另一个表中且在第三个表中被忽略的记录

标签 mysql

基于使用我在此处找到的 SQL 查询,我希望获得基于 user_id 的结果。当我将其添加到查询中时,我最终没有得到任何结果。

SQL - find records from one table which don't exist in another

我有三个表,一个是我的客户的内容,两个是客户同意并正在使用的内容,第三个是要忽略的内容。

我要抓取的结果是内容未被使用或未被忽略。

available_content table
+----+
| id |
+----+
| 1  |
+----+
| 2  |
+----+
| 3  |
+----+
| 4  |
+----+
| 5  |
+----+

posted_content table
+----+----------+
| id | user_id  |
+----+----------+
| 1  | 123      |
+----+----------+
| 2  | 123      |
+----+----------+
| 3  | 456      |
+----+----------+

ignored_content table
+----+----------+
| id | user_id  |
+----+----------+
| 5  | 123      |
+----+----------+
| 1  | 456      |
+----+----------+
| 2  | 456      |
+----+----------+

SELECT a.id
FROM available_content AS a
LEFT OUTER JOIN posted_content AS b
ON (a.id = b.id) WHERE b.id IS NULL AND b.user_id = '123'

results
+----+
| id |
+----+
| 3  |
+----+
| 4  |
+----+

最佳答案

SELECT a.id
FROM available_content a
LEFT OUTER JOIN posted_content b ON (a.id = b.id AND b.user_id = '123') 
LEFT OUTER JOIN ignored_content c ON (a.id = c.id AND c.user_id = '123') 
WHERE b.id IS NULL AND c.id IS NULL

关于mysql - 从一个表中查找不存在于另一个表中且在第三个表中被忽略的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28931655/

相关文章:

Google 云 LAMP 堆栈上的 MySQL 访问

mysql - 使用左联接查询中的AVG帮助

php - SQL连接3个表

mysql - Mysql中的热门项目

java - 按时间间隔 hibernate 分组

mysql - 数据库查询计算所有是/否票和它们所属的数据库记录?

php - 显示所有匹配值而不是第一个

mysql - 比较两个表的数据,将共同数据存储在第三个表中,否则存储在第四个表中

mysql - 列出数据库中的数据库和表名称?

php - 使用 laravel fluent query builder 从多个表中选择