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

MySQL ONLY IN() klausa yang setara

masalah ini disebut Relational Division

SELECT boy_id 
FROM   boys_chocolates 
WHERE  chocolate_id IN ('$string')
GROUP  BY boy_id 
HAVING COUNT(DISTINCT chocolate_id) = ? -- <<== number of chocolates specified

contoh:

SELECT boy_id 
FROM   boys_chocolates 
WHERE  chocolate_id IN (1,2,3,4)
GROUP  BY boy_id 
HAVING COUNT(DISTINCT chocolate_id) = 4

namun, jika chocolate_id unik untuk setiap boy_id , DISTINCT kata kunci adalah opsional.

SELECT boy_id 
FROM   boys_chocolates 
WHERE  chocolate_id IN (1,2,3,4)
GROUP  BY boy_id 
HAVING COUNT(*) = 4

PERBARUI 1

...Saya ingin memilih anak laki-laki dari meja yang memiliki cokelat persis seperti yang saya sebutkan. Tidak lebih tidak kurang...

SELECT boy_id 
FROM   boys_chocolates a
WHERE  chocolate_id IN (1,2,3,4) AND
        EXISTS 
        (
            SELECT  1
            FROM    boys_chocolates b
            WHERE   a.boy_ID = b.boy_ID
            GROUP   BY boy_id
            HAVING  COUNT(DISTINCT chocolate_id) = 4
        )
GROUP  BY boy_id
HAVING COUNT(*) = 4



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa perbedaan antara mysql.createConnection dan mysql.createPool di modul MySQL Node.js?

  2. Bisakah saya mendeteksi dan menangani Peringatan MySQL dengan PHP?

  3. PDO::ERRMODE_EXCEPTION tidak menekan peringatan

  4. Membuat dan Menggunakan Prosedur Tersimpan MySQL - Tutorial

  5. Kesalahan fatal:Panggilan ke kueri fungsi anggota () KELAS PHP