我有一个design_category_table
+-----------+----------+------------+
| Id | IdDesign | IdCategory |
+-----------+----------+------------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 2 | 1 |
| 4 | 2 | 2 |
| 5 | 2 | 3 |
| 6 | 3 | 1 |
| 7 | 3 | 2 |
| 8 | 3 | 3 |
| 9 | 3 | 4 |
+-----------+----------+------------+
1)我想按IdDesign分组,其中IdCategory的条件列表包含(1 AND 2 AND 3)
结果将仅显示2行
+-----------+----------+------------+
| Id | IdDesign | IdCategory |
+-----------+----------+------------+
|3 | 2 | 1 |
|6 | 3 | 1 |
+-----------+----------+------------+
2)我想按IdDesign与IdCategory等于(1 AND 2 AND 3)的条件列表进行分组
结果将仅显示1行
+-----------+----------+------------+
| Id | IdDesign | IdCategory |
+-----------+----------+------------+
|3 | 2 | 1 |
+-----------+----------+------------+
请帮助我...!
答案 0 :(得分:0)
您可以在下面尝试-
select min(Id) as Id,IdDesign,min(IdCategory)
from tablename
where IdCategory in (1,2,3)
group by IdDesign
having count(distinct IdCategory)>=3
输出:
Id IdDesign IdCategory
3 2 1
6 3 1
select min(id) as id, min(IdDesign) as IdDesign,IdCategory
from
(
select min(Id) as Id,IdDesign,min(IdCategory)
from tablename
where IdCategory in (1,2,3)
group by IdDesign
having count(distinct IdCategory)>=3
)A group by IdCategory