जॉइन क्लॉज . में कोष्ठक का उपयोग करना कानूनी सिंटैक्स है एक FROM
. में , और कोष्ठक करते हैं प्रभाव पड़ता है।
इस प्रश्न पर विचार करें:
WITH table_a AS ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 30),
table_b as ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 20),
table_c AS ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 10)
SELECT a.id, b.id, c.id
FROM table_a a left join ( table_b b inner join table_c c ON c.id = b.id ) ON b.id = a.id
ORDER BY 1,2,3;
कोष्ठक आपको तालिकाओं का आंतरिक जुड़ाव करने की अनुमति देता है b
और c
और उसके बाद बाहरी उसमें a
. से जुड़ें ।
कोष्ठक के बिना, यह व्यक्त करने का प्रयास करना कि बाएं शामिल होना असंभव होगा। आपको या तो तालिका a
. से 11-30 पंक्तियाँ नहीं मिलेंगी या फिर तालिका की 11-20 पंक्तियाँ c
null
होगा s (इस पर निर्भर करता है कि आपने इसे कैसे करने की कोशिश की)।
ध्यान दें कि उपरोक्त क्वेरी इसके बराबर है:
WITH table_a AS ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 30),
table_b as ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 20),
table_c AS ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 10)
SELECT a.id, b.id, c.id
FROM table_b b inner join table_c c on c.id = b.id right join table_a a on a.id = b.id
ORDER BY 1,2,3;
, जिसे कोष्ठक की आवश्यकता नहीं है। इसलिए यदि आप वास्तव में FROM
. में कोष्ठकों के उपयोग से बचना चाहते हैं खंड, आप आमतौर पर ऐसा कर सकते हैं। व्यक्तिगत रूप से, मैं LEFT JOIN
पसंद करता हूं RIGHT JOIN
के बजाय कोष्ठक के साथ विधि .