选择categoryId的行属于2个或更多值

时间:2016-07-24 10:30:40

标签: mysql sql select

我有一张这样的表:

enter image description here

我想找到courseId属于2个或更多categoryIds的courseId。例如。如果我将categoryId设为18112和21115,那么它应该只给出courseIds - 18602& 21101

我该怎么做?

4 个答案:

答案 0 :(得分:1)

courseId分组,只选择那些拥有这两个categoryId s

的人
select courseId
from your_table
where categoryId in (18112,21115)
group by courseId
having count(distinct categoryId) = 2

答案 1 :(得分:1)

select courseId 
from courses_categories
where categoryId in (18112,21115)
group by courseId
having count(distinct categoryId) >= 2

答案 2 :(得分:1)

Group byHaving条款可以帮助您。

select courseId
from your_table
where categoryId in (18112,21115)
group by courseId
having count(distinct categoryId) >= 2

答案 3 :(得分:1)

您可以使用GROUP BYHAVING,如下所示:

SELECT courseId
FROM table_name
WHERE categoryId IN (18112,21115)
GROUP BY courseId
HAVING COUNT(DISTINCT categoryId) >= 2