2013-01-09 133 views
2

比方说,我有这样的:MySQL的 - 选择基于多行条件

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

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

回答

6

你会使用这样的:

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

SQL Fiddle with Demo

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