इसे आजमाएं:
SELECT property_id FROM amenities
WHERE amenity_name IN ('parking', 'elevator')
GROUP BY property_id
HAVING COUNT(amenity_name) >= 2
ये रहा क्या हो रहा है...
सबसे पहले, संपत्ति आईडी की सूची प्राप्त करें जिनमें वे सुविधाएं हैं जिनमें आपकी रुचि है:
SELECT property_id FROM amenities WHERE amenity_name IN ('parking', 'elevator')
फिर केवल उन संपत्ति आईडी को शामिल करने के लिए सूची को संकीर्ण करें जिनके पास एक से अधिक सुविधाएं हैं। संपत्ति_आईडी के आधार पर समूहन परिणामों को उन अद्वितीय समूहों में बंडल करता है जिनके आधार पर वे संपत्ति_आईडी से संबंधित होते हैं। फिर, हम बस प्रत्येक समूह में amenity_names की संख्या की गणना करते हैं और जांचते हैं कि यह 2 या अधिक है या नहीं।
GROUP BY property_id HAVING COUNT(amenity_name) >= 2
उपरोक्त कोड में एक धारणा यह है कि आपके पास एक ही amenity_name एक संपत्ति_आईडी से एक से अधिक बार संबद्ध नहीं होगा। इससे संबंधित मुद्दों को खत्म करने के लिए, HAVING
. बदलें DISTINCT
. को शामिल करने के लिए क्लॉज डुप्लिकेट को हटाने के लिए, लेकिन इसे तब तक न जोड़ें जब तक आपको इसकी आवश्यकता न हो।
GROUP BY property_id HAVING COUNT(DISTINCT(amenity_name)) >= 2