考虑以下数据库表:
c p
=========
1 'a'
1 'b'
2 'a'
2 'c'
现在,我的目标是检索一个数字列表c,其中包含此列表中的每个数字至少包含一个记录,其中p ='a'AND p ='b'。
在上面的示例表中,那将是c = 1.
现在我的问题是,如何使用一个MySQL查询来完成此任务?
答案 0 :(得分:2)
select t1.c
from MyTable t1
inner join MyTable t2 on t1.c = t2.c
where t1.p = 'a' and t2.p = 'b'
<强>更新强>
select c
from MyTable
where p in ('a', 'b', 'c', 'd')
group by c
having count(distinct p) = 4
答案 1 :(得分:1)
根据您的数据遵循的规则(如果有),有不同的方法可以解决问题。如果不了解您的问题,我会这样做:
SELECT t1.c FROM table t1 INNER JOIN table t2
ON t1.c = t2.c
WHERE t1.p = 'a' AND t2.p = 'b'