मेरे पास एक साधारण समस्या है, लेकिन एसक्यूएल के माध्यम से उचित समाधान का पता नहीं लगा सकता है। मैं विशेष रूप से postgresql का उपयोग कर रहा हूँ।एसक्यूएल क्वेरी जहां एक जॉइन में सभी रिकॉर्ड एक शर्त से मेल खाते हैं?
समझें:
SELECT * FROM users INNER JOIN tags ON (tags.user_id = users.id) WHERE tags.name IN ('word1', 'word2')
यह मैं क्या जरूरत है नहीं करता है। मैं उन उपयोगकर्ताओं को ढूंढना चाहता हूं जिनके टैग केवल सूची में शामिल हैं। यदि उपयोगकर्ता के पास एक टैग है जो सूची में नहीं है, तो उपयोगकर्ता को शामिल नहीं किया जाना चाहिए।
'user1' टैग:, word1
को देखते हुए WORD2: word1
'user3' टैग: word1, WORD2,
'user2' टैग word3 word1 और WORD2। मैं एक क्वेरी तैयार करना चाहता हूं जो 'user2' और 'user3' देता है। 'user1' को बाहर रखा गया है क्योंकि इसमें एक टैग है जो सूची में नहीं है।
उम्मीद है कि मैंने यह स्पष्ट कर दिया है। आपकी सहायताके लिए धन्यवाद!
संभव डुप्लिकेट [? एसक्यूएल, कैसे मेल करने के लिए सभी] (http://stackoverflow.com/questions/4763143/sql-how-to-match -all) –
क्या आपने अभी यह –
नहीं पूछा था, जिन उपयोगकर्ताओं को कोई टैग नहीं है, उन्हें वापस लौटाया जाना चाहिए? – Quassnoi