मैं निम्नलिखित करने के लिए एक क्वेरी बनाने का तरीका खोज रहा हूँ:
आइए 3 तालिकाओं पर विचार करें:
- उत्पादों: उत्पादों की सूची
- टैग: टैग की सूची
- tag_ties: तालिका का उपयोग किसी उत्पाद को टैग जोड़ने के लिए किया जाता है
आइए प्रत्येक तालिका के लिए इस संरचना पर विचार करें:
उत्पाद:
- आईडी (इंट, ऑटोइन्क्रिमेंट)
- नाम (varchar, उत्पाद का नाम)
टैग:
- आईडी (इंट ऑटोइन्क्रिमेंट)
- लेबल (varchar, टैग का लेबल)
Tag_ties:
- आईडी (इंट, ऑटोइन्क्रिमेंट)
- टैग_आईडी (उदाहरण, टैग आईडी का संदर्भ)
- Ref_id (int, एक उत्पाद आईडी का संदर्भ)
मैं क्या चाहता हूँ:
उदाहरण के लिए टैग 10, 11 और 12 के साथ टैग किए गए सभी उत्पादों को प्राप्त करें।
यह क्वेरी काम नहीं करती है, क्योंकि यह कम से कम टैग वाले उत्पादों को लौटाती है:
select
p.name as name,
p.id as id
from
products p inner join tag_ties ties
on
p.id=ties.ref_id
where
ties.ref_id=p.id and
ties.tag_id in (10,11,12)
group by
p.id
order by
p.name asc