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

Mysql-forespørgsel for at finde ID, hvor flere betingelser opfyldes for en kolonne

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')

Se den på sqlfiddle .

Alternativt, hvis du er glad for at få typerne sammenkædet i en afgrænset streng, kan du udtrække de ønskede data i et enkelt gennemløb:

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

Se den på sqlfiddle .

Bemærk, at hvis din tabel kan indeholde flere poster med den samme (ID, COLOR) par, skal du erstatte COUNT(*) med den dyrere COUNT(DISTINCT COLOR) .




  1. Hvad betyder \x1a-tegnene

  2. Sådan finder du de sorteringer, der understøttes af serveren i MySQL

  3. Hvordan skal jeg tackle --secure-file-priv i MySQL?

  4. Muligt at bruge SQL til at sortere efter dato, men sætte null-datoer bagerst i resultatsættet?