Mysql - 根据多行条件选择

时间:2013-01-09 18:13:44

标签: mysql

假设我有这个:

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

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

2 个答案:

答案 0 :(得分:6)

您将使用以下内容:

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

请参阅SQL Fiddle with Demo

答案 1 :(得分:0)

SELECT DISTINCT `ID` FROM tablename WHERE `VAL` IN ('10','30');