2010-04-08 18 views
6

मैं एक SQL क्वेरी कैसे लिखूं जिसमें एक रिकॉर्ड को शामिल किया गया है यदि एक से एक (बाहरी) रिकॉर्ड किसी एक से कुछ निश्चित स्थिति से मेल खाता है?कई एसक्यूएल में एक के आधार पर रिकॉर्ड्स को छोड़कर

उदाहरण के लिए:

Details 
ID  
1   
2   

Items 
DetailID Item 
1   A 
1   B 
2   B 
2   C 

मैं कैसे विस्तार रिकॉर्ड जहां आइटम 'ए' शामिल नहीं है का चयन करेंगे?

उत्तर

5
SELECT * 
FROM details d 
WHERE NOT EXISTS ( 
    SELECT * 
    FROM items i 
    WHERE i.DetailID == d.ID 
    AND i.Item = 'A') 
0

क्यों सिर्फ अंदरूनी शामिल हों का उपयोग नहीं की तरह: systempuntoout के समाधान के

SELECT details.* 
FROM details 
INNER JOIN items ON details.ID=items.DetailID AND items.Item<> 'A' 
+2

कि आइटम तालिका में दूसरी पंक्ति लौट आते हैं। ओपी पूरी तरह से विस्तार आईडी = 1 बाहर करना चाहता है। –

+0

क्या यह स्पष्ट है कि ओपी चाहता है :)? शायद यह आपके जैसा है। – systempuntoout

2

निर्माण:

SELECT details.* 
FROM details 
LEFT OUTER JOIN items ON details.ID=items.DetailID AND items.Item = 'A' 
WHERE items.DetailID IS NULL 
संबंधित मुद्दे