我有一个表,其中包含那些字段
mid , email
1 , 'user_a@...'
2 , 'user_b@...'
3 , 'user_c@...'
然后是另一个包含以下字段/值的表
tid, name
1, t_a
2, t_b
3, t_c
和其他表
tid, mid
1, 1
1, 2
1, 3
2, 2
2, 3
3, 1
3, 2
如何让所有拥有't_a'和't_b'的用户...我需要返回
user_a,
user_c
因为user_b不包含t_a
答案 0 :(得分:2)
SELECT e.email
FROM emails e
INNER JOIN email_tags et
ON e.mid = et.mid
INNER JOIN tags t
ON et.tid = t.tid
WHERE t.name IN ('t_a', 't_b')
GROUP BY e.email
HAVING COUNT(DISTINCT t.name) = 2