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

SQL Wybierz tylko wiersze, w których istnieje wiele relacji

Nazywa się to Podział relacyjny

SELECT  a.name
FROM    parent a
        INNER JOIN rel b
            ON a.parent_ID = b.parent_ID
WHERE   b.prop_id IN (1,5)
GROUP BY a.name
HAVING COUNT(*) = 2

AKTUALIZACJA 1

jeśli unikalne ograniczenie nie został wymuszony na prop_id dla każdego parent_id , DISTINCT jest potrzebne w tym przypadku.

SELECT  a.name
FROM    parent a
        INNER JOIN rel b
            ON a.parent_ID = b.parent_ID
WHERE   b.prop_id IN (1,5)
GROUP BY a.name
HAVING COUNT(DISTINCT b.prop_id) = 2


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać pierwszy dzień tygodnia na randce w mysql?

  2. Jakie są różnice w korzystaniu z bazy danych XML i MySQL? Którego powinienem użyć?

  3. MySQL w Dockerze — jak skonteneryzować bazę danych :Nowy dokument

  4. Instrukcja Node MySQL escape LIKE

  5. MYSQL — Jak obejść limit rozmiaru wiersza wynoszący 66 KB