मैं इसके लिए सशर्त एकत्रीकरण के साथ एकत्रीकरण का उपयोग करना पसंद करता हूं। उदाहरण के लिए, आपके पहले बुलेट के लिए:
select a.carid
from attributes a
group by a.carid
having sum( (attribute, value) in ( ('color', 'red'), ('color', 'blue') ) ) > 0 and
sum( (attribute, value) in ( ('wheels', '2') ) > 0;
> 0
इसका मतलब है कि विशेषता/मान संयोजन मौजूद है। = 0
का प्रयोग करें यह निर्दिष्ट करने के लिए कि यह काम नहीं करता है।