sql >> Database teknologi >  >> RDS >> Mysql

Find en gruppe af poster, der matcher flere værdier

Du kan gøre dette med betinget aggregering:

select parentid 
from tablename
group by parentid
having sum(case when datavalue = 1 then 1 else 0 end) > 0 and
       sum(case when datavalue = 6 then 1 else 0 end) > 0

En anden måde er at bruge exists :

select distinct parentid
from tablename t1
where exists(select * from tablename where parentid = t1.parentid and datavalue = 1) and
      exists(select * from tablename where parentid = t1.parentid and datavalue = 6)

En anden måde er at tælle forskellige forekomster:

select parentid 
from tablename
where datavalue in(1, 6)
group by parentid
having count(distinct datavalue) = 2



  1. Sådan sammenlignes datoer i SQL Server

  2. Forskellen mellem NullIf() og IfNull() i SQLite

  3. Adgang til MySQL-database fra mit VB.NET 2008-projekt

  4. Hvad er en MDF fil?