2013-01-09 220 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');