sql >> Databasteknik >  >> RDS >> Mysql

Hitta grupp med poster som matchar flera värden

Du kan göra detta med villkorlig 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

Ett annat sätt är att använda 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)

Ett annat sätt är att räkna distinkta förekomster:

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



  1. Hur genererar jag ett slumpmässigt tidsintervall och lägger till det i en mysql datetime med php?

  2. Hur man skapar en tabell i SQL Server

  3. MySQL sammanlänkar alla kolumner

  4. MySQL-fjärranslutning misslyckas med okänd autentiseringsmetod