Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Uzyskaj wszystkie rekordy poziomu 1, które mają tylko określoną liczbę wartości na poziomie 2

Dołącz do tabeli za pomocą podzapytania, które zlicza liczbę wierszy dla rodzica i wybierz tylko te z żądaną liczbą.

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

Zastąp :child z liczbą dzieci, które próbujesz dopasować.

DEMO

Korzystanie z COUNT(Column2) zamiast COUNT(*) zignoruje wiersze, w których Column2 jest NULL , więc nie będzie zawierać 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. Tabela czyszczenia MySQL ze zduplikowanych wpisów ORAZ ponownie połącz FK w tabeli zależnej

  2. dynamiczny wybór nazw kolumn w MySql

  3. Emotikony iPhone'a wstawiają się do MySQL, ale stają się pustą wartością

  4. Jak zablokować wiersz w mysql bez blokowania?

  5. Przekierować wiele adresów URL przez bazę danych mysql?