我需要帮助以找到此查询在MySQL中的解决方案吗?

提问

我有如下的MySQL表:

id  p_id   c_id

1   11      1

2   11      2

3   11      3

4   12      1

5   12      3

6   13      1

7   13      2

我需要一个查询,当c_id为1和2时,它应该返回p_id的11和13.

我尝试了以下查询:

SELECT DISTINCT p_id FROM `Table Name` where c_id in (1,2)

返回:11、12、13

但我只需要它返回:11,13.

最佳答案

您可以将查询写为:

SELECT DISTINCT a.p_id 
FROM table_name AS a
JOIN table_name AS b ON a.p_id=b.p_id
WHERE a.c_id ='1' AND b.c_id ='2';

这是桌子上的自我连接