2

假设我有这个:

|ID | Val |  
+---+-----+  
| 1 |  10 |  
| 1 |  20 |  
| 1 |  30 |  
| 2 |  10 |  
| 2 |  20 |  
| 3 |  20 |  
| 3 |  30 |  
+---+-----+  

我只需要选择那些同时具有 10 和 30 值的 ID。所以,用英语,给我一个同时包含 10 和 30 值的 ID。我该怎么做?

4

2 回答 2

6

你将使用这样的东西:

select id
from yourtable
where val in (10, 30)
group by id
having count(distinct val) =2

请参阅带有演示的 SQL Fiddle

于 2013-01-09T18:18:51.317 回答
0
SELECT DISTINCT `ID` FROM tablename WHERE `VAL` IN ('10','30');
于 2013-01-09T18:19:21.907 回答