2013-08-22 10 views
8

तो मैं एक एसक्यूएल लिखने ओरेकल बाहरी एक फिल्टर के साथ शामिल होने का उपयोग करें:कैसे जहां खंड

select * 
from a,b 
where  a.id=b.id(+) 
     and b.val="test" 

और मैं ख में एक जहां इसी रिकॉर्ड से सभी रिकॉर्ड चाहते मौजूद नहीं है या यह वैल = "परीक्षण के साथ मौजूद है ", क्या यह सही सवाल है?

+0

आपके पास कितनी तालिका है और a.b और c क्या है? – Gourabp

उत्तर

15

आप एएनएसआई वाक्य रचना

SELECT * 
    FROM a 
     LEFT OUTER JOIN b ON(a.id = b.id and 
          b.val = 'test') 

साथ ही आप Oracle की सिंटैक्स का उपयोग एक ही बात कर सकते हैं का उपयोग कर बंद काफी बेहतर हैं, लेकिन यह थोड़ा hinkey हो जाता है

SELECT * 
    FROM a, 
     b 
WHERE a.id = b.id(+) 
    AND b.val(+) = 'test' 

ध्यान दें कि दोनों मामलों में, मैं c तालिका को अनदेखा कर रहा हूं क्योंकि आप शामिल स्थिति निर्दिष्ट नहीं करते हैं। और मुझे लगता है कि आप वास्तव में ए से बी में शामिल नहीं होना चाहते हैं और फिर सी

+0

क्या यह सही है: चुनें * से, बी जहां a.id = b.id (+) और b.val (+) = 'test' और b.col2 (+) = 'test2'; मैं सभी पंक्तियों को प्राप्त करना चाहता हूं यदि बी में संबंधित पंक्ति बी में शून्य या इसी पंक्ति में col2 = 'test2' और val = 'test' तो, यह या तो शून्य है (col2 = 'test2' और val = 'परीक्षण') – Victor

1

स्थिति को JOIN खंड में ले जाएं और ANSI मानक शामिल पैटर्न का उपयोग करें।

SELECT NameYourFields,... 
FROM A 
LEFT OUTER JOIN B 
ON A.ID = B.ID 
AND B.VAL = 'test' 
INNER JOIN C 
ON ... 
0

एक बाएं बाहरी जॉइन जॉइन ऑपरेशंस में से एक है जो आपको शामिल होने वाले खंड निर्दिष्ट करने की अनुमति देता है। यह पहली (बाएं) तालिका से बेजोड़ पंक्तियों को संरक्षित करता है, जो उन्हें दूसरी (दाएं) तालिका के आकार में एक पूर्ण पंक्ति के साथ जोड़ता है।

इस प्रकार है तो तुम क्या कर सकते हैं:

चयन
से एक वाम बाहरी ख शामिल हों पर a.id = b.id

--Note कि आप दोहरे उद्धरण का इस्तेमाल किया है "परीक्षण" जो एसक्यूएल में वर्कर के लिए उपयोग नहीं किया जाता है, आपको सिंगल कोट 'टेस्ट'

और बी.वल = 'टेस्ट' का उपयोग करना चाहिए;

1
SELECT * FROM abc a, xyz b 
WHERE a.id = b.id 
    AND b.val = 'test' 
+0

हाय और एसओ में आपका स्वागत है। आपके योगदान के लिए धन्यवाद लेकिन यह बेहद सहायक होगा यदि आप कुछ जवाबों के साथ अपने उत्तर का विस्तार कर सकते हैं कि यह कैसे प्रश्नों के प्रश्नों का उत्तर देता है। – Deepend

संबंधित मुद्दे