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

Вземете всички записи от ниво 1, които имат само определен брой стойности в ниво 2

Присъединете се към таблицата с подзаявка, която отчита броя на редовете за родителя, и изберете само тези с броя, който желаете.

SELECT DISTINCT a.level1 AS Parent, a.level2 AS Child
FROM yourTable AS a
JOIN (SELECT level1, COUNT(DISTINCT level2) AS children
      FROM yourTable
      GROUP BY level1) AS b
ON a.level1 = b.level1
WHERE children = :child

Заменете :child с броя на децата, които се опитвате да съпоставите.

ДЕМО

Използване на COUNT(Column2) вместо COUNT(*) ще игнорира редовете, където Column2 е NULL , така че няма да включва A100 .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel ред по има много отношения

  2. SQL актуализира една колона от друга колона в друга таблица

  3. MySQL показва всички дефинирани от потребителя променливи

  4. Как да определим дали заявка за актуализиране на MySQL е успешна, когато данните, предадени в заявката, са същите като тези, които вече са в базата данни?

  5. Как да направя удостоверяване в node.js, което мога да използвам от моя уебсайт?