Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kembalikan catatan induk dengan catatan anak yang sama dengan nilai tertentu DAN di mana total kumpulan catatan anak untuk induk tertentu sama dengan nilai tertentu

Kueri yang Anda minta adalah:

SELECT  parent.item1, parent.item2, parent.index
FROM    parent
INNER JOIN
        child
ON      child.index = parent.index
GROUP BY
        parent.item1, parent.item2, parent.index
HAVING  SUM(CASE WHEN child.value IN (1111111, 2222222) THEN 1 ELSE 0 END) = 2
        AND COUNT(*) <= 2

Jika Anda hanya ingin memastikan bahwa anak-anak cocok dengan semua nilai di IN list dan tidak ada yang tidak ada dalam daftar, gunakan ini (di SQL Server )

SELECT  *
FROM    parent p
WHERE   NOT EXISTS
        (
        SELECT  NULL
        FROM    (
                SELECT  value
                FROM    child c
                WHERE   c.index = p.index
                ) c
        FULL JOIN
                (
                SELECT  11111111 AS value
                UNION ALL
                SELECT  22222222
                ) q
        ON      c.value = q.value
        WHERE   c.value IS NULL OR q.value IS NULL
        )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengatur Failover Otomatis untuk Database MySQL Moodle

  2. Bagaimana cara menyimpan data dengan jumlah atribut dinamis dalam database

  3. Cara melihat kueri lengkap dari SHOW PROCESSLIST

  4. MySQL agregat jumlah objek JSON

  5. Hibernate, C3P0, Mysql -- Pipa Rusak