Mysql
 sql >> база данни >  >> RDS >> Mysql

Mysql заявка за намиране на идентификатор, където отговарят множество условия за една колона

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

Вижте го на sqlfiddle .

Като алтернатива, ако сте щастливи да имате конкатенирани типове в разделен низ, можете да извлечете желаните данни с едно преминаване:

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

Вижте го на sqlfiddle .

Имайте предвид, че ако вашата таблица може да съдържа множество записи с един и същ (ID, COLOR) двойка, трябва да замените COUNT(*) с по-скъпия COUNT(DISTINCT COLOR) .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. изтрийте ред в моята база данни с помощта на php pdo

  2. Какви са оптималните размери на varchar за MySQL?

  3. как да получите позицията на сортираните редове с помощта на mysql и php

  4. Изисква се за присъединяване на 2 маси с техните FK в 3-та маса

  5. Как да „дехексирате“ число в MySQL