का चयन u.user, g.group, उपयोगकर्ताओं, समूहों से u2g.something u2g जहां users.u = u2g.u और groups.g = u2g.g
जो इस तरह से डेटा देता है:
उपयोगकर्ता, समूह, कुछ -------------- -------- 1, 3, एक 1, 5, बी 2, 3, सी 3, 3, डी 4, 5, ई कोड> प्री> अब मैं सीमित करना चाहता हूं यह प्रश्न इस तरह से है कि यह केवल उन उपयोगकर्ताओं को दिखाता है जो दोनों समूह 3 और 5 में हैं - तो यह केवल मेरे उदाहरण के लिए {1,3, एक}, {1,5, बी} डेटा।
संपादित करें: मैंने डेटा में एक और कॉलम जोड़ा है क्योंकि एक समूह का उपयोग करके एक गलत समाधान हो सकता है।
edit2: क्षमा करें, मुझे प्रलेखन द्वारा गुमराह किया गया था। MySQL 4.0 उपश्रेणियों का समर्थन नहीं करता है: (
संपादित करें 3: यह एसक्यूएल किसी भी संख्या के समूहों के लिए प्रोग्राम तैयार किया जाएगा (अच्छी तरह से, वर्तमान विनिर्देश में 20 तक) तो मैं उन समाधानों से बचना चाहूंगा जो मुझे बहुत ज्यादा दे अतिरिक्त कोडिंग करने के लिए। अगर कोई समाधान नहीं मिलेगा, तो मैं परिणामस्वरूप .Net 1.1 DataTable को संशोधित करूंगा, लेकिन संभव है कि मैं उस से बचाना चाहता हूं।
edit4: कोई नया विचार? शायद एक बिना (3,5) में शामिल हैं subqueries?
समूह-तालिका के साथ डबल जुड़ने का उपयोग आपको सही परिणाम:
का चयन u.user, उपयोगकर्ताओं से u2g.something अंदरूनी u2g पर users.u = u2g.u अंदरूनी समूहों G1 पर u2g.g = g1.g और g1.group = 3 अंदरूनी शामिल हों शामिल हों समूह में शामिल होने G2 पर u2g.g = g2.g और g2.group = 5 / * दो पंक्तियों, प्रत्येक समूह * / इनर पर u2g.g = groups.gसमूह में शामिल होने
हालांकि के लिए एक के लिए यह कोशिश , यह आपके अनुरोध से बिल्कुल मेल नहीं खाता है, आप दो पंक्तियों के लिए, हर समूह के लिए एक चाहते हैं केवल आपको एक पंक्ति देगा, दो पंक्तियों को प्रतिपादित करने के लिए आप इसके साथ समूहों में एक बार फिर शामिल हो सकते हैं।
एक अन्य उदाहरण (यदि आप उसी समूह आईडी का उपयोग कर रहे हैं जिसे आप मैप करते हैं तो): < / p>
का चयन करें u.uID, cdcms_users यू भीतरी में शामिल होने cdcms_group_memberships gm1.uID = u.uID और gm1.gID = 32 भीतरी पर gM1 में शामिल होने cdcms_group_memberships gm2.uID = u.uID और gm2 पर gm2 से gm.something। जीआईडी = 33
Comments
Post a Comment