MySQL Select where value = 9 'and' value =3 -


मैं इस तालिका से चयन करने का प्रयास कर रहा हूं:

  group_id user_id 3 3 9 3 3 18 9 18 9 39 7 39  

यूज़र_आईडी जहां इसमें 3 और 9 दोनों मान हैं:

मुझे क्या चाहिए:

  Group_id user_id 3 3 9 3 3 18 9 18  

मैंने जो कोशिश की:

  चुनें * से prlg_pp_group_members जहां group_id IN (3 9);  

मैंने पहली बार एक प्रश्न लिखा था जो 3 या 9 के समूह_आईड के साथ सभी पंक्तियों को खींच लिया और उन्हें group_id और user_id द्वारा समूहीकृत किया। यह सुनिश्चित किया गया कि कोई डुप्लिकेट पंक्तियाँ नहीं थीं (जैसे 3,3 बार दो बार प्रदर्शित हो।)

इससे हमें यह दिया गया:

  SELECT * myTable WHERE group_id = 9 या group_id = समूह ग्रुप द्वारा 3 समूह, user_id;  

उसके बाद, आप उस क्वेरी पर user_id द्वारा उस क्वेरी को समूहित कर सकते हैं जिसे user_id दो बार दिखाई देता है (जिसका अर्थ है कि इसमें 3 और 9 का समूह_आईड है क्योंकि हम पहले से ही उन स्थितियों पर फ़िल्टर कर चुके हैं।) इस विशिष्ट उदाहरण में, (9, 3 9) अंतिम परिणाम सेट में नहीं दिखाई देगा क्योंकि 39 दो बार नहीं होते हैं।

क्वेरी इस प्रकार दिखती है:

  SELECT User_id FROM (myTable WHERE से group_id = 9 या group_id = 3 ग्रुप समूह_आईडी, user_id) से यू समूह user_id होस्टिंग COUNT (*) = 2;  

अब वह जगह है जहां वरीयता में आता है: यह क्वेरी केवल user_id मान देता है यह group_id मान नहीं दिखाता है, लेकिन हम पहले से ही जानते हैं कि यह मान subquery से 3 और 9 दोनों हो सकता है। यदि आप यह मान चाहते हैं, तो आपको मूल तालिका पर वापस जाना होगा और 3 या 9 के लिए फ़िल्टर करना होगा और यह जांच लें कि user_id IN इस subquery:

  SELECT * myTable WHERE से (group_id = 9 या group_id = 3) और user_id IN (SELECT user_id FROM (myTable WHERE से group_id = 9 या group_id = 3 GROUP समूह_आईडी, user_id) टी GROUP BY user_id होस्टिंग COUNT (*) = 2);  

Comments

Popular posts from this blog

java - Can't add JTree to JPanel of a JInternalFrame -

javascript - data.match(var) not working it seems -

javascript - How can I pause a jQuery .each() loop, while waiting for user input? -