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

persimpangan banyak-ke-banyak dan banyak-ke-banyak

Jika saya ingin memecahkan masalah, saya akan menggabungkan empat tabel dengan kolom tautannya (khususnya kunci asing ) kemudian subquery pada HAVING klausa untuk menghitung jumlah item pada daftar untuk setiap orang. Coba ini,

SET @personID := 1;

SELECT  c.name
FROM    Inventory a
        INNER JOIN Foods b
            ON a.food_id = b.id
        INNER JOIN Stores c
            ON a.store_id = c.id
        INNER JOIN Lists d
            ON d.food_id = b.id
WHERE   d.person_id = @personID
GROUP BY c.name
HAVING   COUNT(DISTINCT d.food_id) =
     (
        SELECT COUNT(*)
        FROM Lists
        WHERE person_ID = @personID
     )

Demo SQLFiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Permintaan untuk mendapatkan semua baris dari bulan sebelumnya

  2. Cara menggunakan 'pilih' dalam pernyataan 'masukkan' MySQL

  3. Tambahkan Awalan ke peningkatan otomatis di mysql db

  4. Apakah benar mengindeks semua kolom dalam database mysql?

  5. Pulihkan database mysql dari file .frm