SpatialJoin के साथ “… कहाँ…” और “Join… on…” के बीच अंतर


9

मुझे आश्चर्य है कि जहां इन दो स्थानिक जोड़ के बीच का अंतर है, और अगर अंतर है, तो कब उपयोग करना है।

SELECT *
FROM points p, shapes s
WHERE ST_Within(p.geom, s.geom);

तथा

SELECT *
FROM points p
INNER JOIN shapes s ON ST_Within(p.geom, s.geom)

क्या कुछ स्थितियों में तेज है?


1
अंतर शैलीगत है, लेकिन जब आपके कार्य बारह से पंद्रह तालिकाओं में शामिल होने के लिए विस्तारित होते हैं, तो आप देखेंगे कि अनुभवी SQL कोडर्स JOINविशेष रूप से क्यों उपयोग करते हैं । दुर्भाग्य से, जैसा कि लिखा गया है, यह एक शुद्ध एसक्यूएल प्रश्न से अधिक है, और उस पर राय चारा है।
विंस

जवाबों:


4

दोनों के बयान में कोई अंतर नहीं है। Postgresql दोनों को एक ही क्वेरी प्लान में कनवर्ट करता है। आप EXPLAIN ANALYZEअपने चयन से पहले योजनाओं को जोड़कर देख सकते हैं और परिणाम देख सकते हैं ।


क्या एक को दूसरे की तुलना में तेज माना जाता है?
स्टॉफ़फेस

नहीं होना चाहिए। Postgresql दोनों को एक ही क्वेरी प्लान में कनवर्ट करता है। आप EXPLAIN ANALYZEअपने चयन से पहले योजनाओं को जोड़कर देख सकते हैं और परिणाम देख सकते हैं ।
रोमन Tachachuk

6
मैं JOIN पसंद करता हूं क्योंकि WHER में मिक्स होने पर कंडीशन को भूलना बहुत आसान है। इसके अलावा JOIN दृष्टिकोण के साथ, आप किसी भी आकार में नहीं हैं, उदाहरण के लिए अंक खोजने के लिए एक बाएँ का उपयोग कर सकते हैं। आप ऐसा नहीं कर सकते हैं
LR1234567
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.