我有一个条目表和一个类别表,其中一个连接表将两者联系起来,我想要做的是选择与特定类别集匹配的所有条目.
例如.所有具有A类和B类的条目
项
entry_id | title
------------------
1 | Entry 1
2 | Entry 2
3 | Entry 3
Run Code Online (Sandbox Code Playgroud)
类别
category_id | name
------------------
1 | A
2 | B
3 | C
Run Code Online (Sandbox Code Playgroud)
entry_categories
entry_id | category_id
-----------------------
1 | 1
1 | 2
2 | 1
2 | 2
2 | 3
3 | 1
3 | 3
Run Code Online (Sandbox Code Playgroud)
如果我这样做,我会得到所有3个条目,因为它们每个都至少匹配一个类别,但我真正想要的是条目1和条目2而不是条目3.
SELECT *
FROM entry_categories AS ec
INNER JOIN entries AS e ON ec.entry_id = e.entry_id
WHERE ec.category_id IN(1, 2)
GROUP BY e.entry_id
Run Code Online (Sandbox Code Playgroud)
HAVING COUNT(ec.Categor_id) = 2像这样添加:
SELECT *
FROM entry_categories AS ec
INNER JOIN entries AS e ON ec.entry_id = e.entry_id
WHERE ec.category_id IN(1, 2)
GROUP BY e.entry_id
HAVING COUNT(ec.Category_id) = 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
951 次 |
| 最近记录: |