MySQL,如何获取具有某些列的行

时间:2016-08-11 07:15:53

标签: mysql

我有一张这样的表:

|  ID1   |  ID2  |
------------------
|   1    |   1   |
|   2    |   1   |
|   3    |   1   |
|   4    |   1   |
|   5    |   1   |
|   6    |   1   |
|   7    |   1   |
|   8    |   1   |
|   9    |   1   |
|   10   |   1   |
|   11   |   1   |
|   12   |   1   |
|   13   |   1   |
|   1    |   2   |
|   2    |   2   |
|   5    |   2   |
|   1    |   4   |
|   9    |   4   |

有些ID1同时具有1和4值:

Wanted values

我想像这样返回ID1:

|  ID1   |
----------
|   1    |
|   9    |

我已经尝试了一些基本的查询,但我甚至没有关闭..我甚至无法让它在远程工作,我需要一些严肃的帮助。

2 个答案:

答案 0 :(得分:3)

试试这个:

select id1
from yourtable
where id2 in (1,4)
group by id1
having count(distinct id2) = 2

Demo Here

答案 1 :(得分:1)

如果ID1应该只有一个唯一值,那么以下查询将对您有用:

SELECT 
 ID1
FROM your_table
GROUP BY ID1
HAVING COUNT(DISTINCT ID2) > 1;

编辑:您可能正在寻找ID2 as 1 and 4 both的参赛作品。

SELECT 
 ID1
FROM your_table
WHERE ID2 IN (1,4)
GROUP BY ID1
HAVING COUNT(DISTINCT ID2) = 2;

注意:如果您澄清表格中支持ID1 & ID2的哪种组合,那会更好。