मेरा प्रश्न इस SQL order of operations के समान है लेकिन थोड़ा मोड़ के साथ, इसलिए मुझे लगता है कि यह पूछना उचित है।जहां ऑपरेशन का आदेश और जॉइन आदेश
मैं टेराडाटा का उपयोग कर रहा हूं। और मेरे पास 2 टेबल हैं: table1
, table2
।
table1
में केवल id
कॉलम है।
table2
निम्नलिखित स्तंभ हैं: id
, val
मैं गलत हो सकता है लेकिन मुझे लगता है इन दो बयानों में एक ही परिणाम देती है।
वक्तव्य 1.
SELECT table1.id, table2.val
FROM table1
INNER JOIN table2
ON table1.id = table2.id
WHERE table2.val<100
वक्तव्य 2.
SELECT table1.id, table3.val
FROM table1
INNER JOIN (
SELECT *
FROM table2
WHERE val<100
) table3
ON table1.id=table3.id
मेरे सवालों का, है क्वेरी अनुकूलक
करने के लिए पर्याप्त चतुर होगा - पर अमल कहां खंड पहले तो वक्तव्य 1 में बाद में शामिल हों
- पता है कि तालिका 3 वास्तव में स्टेटमेंट 2
में आवश्यक नहीं है मैं एसक्यूएल के लिए काफी नया हूं, इसलिए कृपया मुझे शिक्षित करें यदि मैं कुछ भी गलत समझ रहा हूं।
मैंने सोचा होगा कि क्वेरी ऑप्टिमाइज़र दोनों के लिए एक ही योजना के साथ आएगा। हालांकि सत्यापित करने के लिए 'EXPLAIN' योजना चलाने का प्रयास करें। –