MySql查询-查找交集

MySql查询-查找交集,mysql,sql,Mysql,Sql,我有3个表,user\u标记、article\u标记、article\u忽略。我只想获取那些user\u id=48的文章,其中至少有一个文章标记与用户标记匹配。我被困在这已经很长时间了,不知道如何实现这一点 表格结构如下: article_ignored table id | user_id 1 | 48 2 | 48 3 | 48 article_tag table id | article_id | tag_id 1 | 1 | 1 2 | 1

我有3个表,
user\u标记、article\u标记、article\u忽略
。我只想获取那些
user\u id
=48的文章,其中至少有一个文章标记与用户标记匹配。我被困在这已经很长时间了,不知道如何实现这一点

表格结构如下:

article_ignored table
id | user_id 
1  | 48
2  | 48
3  | 48

article_tag table
id | article_id | tag_id 
1  |    1   |   1  
2  |    1   |   5
3  |    1   |   7
4  |    2   |   2
5  |    2   |   8
6  |    3   |   3
7  |    3   |   2

user_tag table
id | user_id | tag_id
1  |   48    |   2
2  |   48    |   3
所需输出:

article_ignored
id
2
3

您可以使用
不存在

SELECT id, user_id
FROM article_ignored AS ai
WHERE EXISTS (SELECT 1
              FROM article_tag AS at
              JOIN user_tag AS ut ON at.tag_id = ut.tag_id
              WHERE ai.id = at.article_id)