अगर मुझे समस्या का समाधान करना होता, तो मैं चार तालिकाओं को उनके लिंकिंग कॉलम (विशेष रूप से विदेशी कुंजी) के साथ जोड़ दूंगा ) फिर HAVING
. पर एक सबक्वेरी प्रत्येक व्यक्ति के लिए सूची में मदों की संख्या गिनने के लिए खंड। इसे आज़माएं,
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
)