Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

nút giao nhiều-nhiều và nhiều-nhiều

Nếu tôi giải quyết được vấn đề, tôi sẽ nối bốn bảng với cột liên kết của chúng ( cụ thể là các khóa ngoại ) sau đó là truy vấn con trên HAVING mệnh đề đếm số mục trong danh sách cho mỗi người. Hãy thử cái này,

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
     )

SQLFiddle Demo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm kiếm tương đương với dictcursor trong flashkext.mysql

  2. SQLite có phù hợp để sử dụng trong một trang web sản xuất không?

  3. Xây dựng truy vấn động trong đường ray

  4. Bảng MySQL không tồn tại lỗi, nhưng nó tồn tại

  5. Làm cách nào để chọn các bản ghi chỉ trùng lặp một trường và tất cả các giá trị trường khác?