sql >> Database >  >> RDS >> Mysql

Mysql-query om ID te vinden waar meerdere voorwaarden voldoen voor één kolom

SELECT ID, TYPE FROM types NATURAL JOIN (
  SELECT ID FROM types GROUP BY ID HAVING SUM(COLOR='Red') AND SUM(COLOR='Blue')
) t WHERE COLOR IN ('Red', 'Blue')

Bekijk het op sqlfiddle .

Als u de typen graag wilt samenvoegen tot een gescheiden tekenreeks, kunt u ook de gewenste gegevens in één keer extraheren:

SELECT   ID, GROUP_CONCAT(TYPE)
FROM     types
WHERE    COLOR IN ('Red', 'Blue')
GROUP BY ID
HAVING   COUNT(*) = 2

Bekijk het op sqlfiddle .

Merk op dat, als uw tabel meerdere records kan bevatten met dezelfde (ID, COLOR) paar, moet u COUNT(*) . vervangen met de duurdere COUNT(DISTINCT COLOR) .




  1. SQL Selecteer om een ​​waarde slechts één keer te laten verschijnen

  2. hibernate map java Long naar MySQL BIGINT fout

  3. Hoe kan ik een asynchrone oproep afronden om zich synchroon te gedragen?

  4. Een afbeelding van Oracle invoegen in SQL Server