Mysql - 根据多行条件选择

srg*_*rgb 2 mysql

假设我有这个:

|ID | Val |  
+---+-----+  
| 1 |  10 |  
| 1 |  20 |  
| 1 |  30 |  
| 2 |  10 |  
| 2 |  20 |  
| 3 |  20 |  
| 3 |  30 |  
+---+-----+  
Run Code Online (Sandbox Code Playgroud)

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

Tar*_*ryn 6

你会用这样的东西:

select id
from yourtable
where val in (10, 30)
group by id
having count(distinct val) =2
Run Code Online (Sandbox Code Playgroud)

请参阅SQL Fiddle with Demo