केवल पहले 8 वर्णों की तुलना करने के लिए इसे आज़माएं:
SELECT r.domainid, r.dombegin, r.domend, d.ddid
FROM domainregion r
JOIN dyndomrun d ON r.domainid::varchar(8) = d.ddid
ORDER BY r.domainid, d.ddid, r.dombegin, r.domend;
कास्ट परोक्ष रूप से अनुगामी पात्रों को ट्रिम करता है। ddid
शुरू करने के लिए केवल 8 वर्ण हैं। इसे संसाधित करने की भी आवश्यकता नहीं है। यह वही हासिल करता है:
JOIN dyndomrun d ON left(r.domainid, 8) = d.ddid
हालांकि, सलाह दी जाती है कि स्ट्रिंग फ़ंक्शन left()
केवल PostgreSQL 9.1 के साथ पेश किया गया था। पुराने संस्करणों में आप स्थानापन्न कर सकते हैं:
JOIN dyndomrun d ON substr(r.domainid, 1, 8) = d.ddid
__
शुरुआती लोगों के लिए बुनियादी स्पष्टीकरण:
-
क्वेरी
JOIN
. का उपयोग करती है . मैन्युअल में इसके बारे में अधिक पढ़ें । -
FROM domainregion r
FROM domainregion AS r
. के लिए संक्षिप्त है .AS
PostgreSQL में इस मामले में सिर्फ शोर है। तालिका उपनाम क्वेरी को छोटा और पढ़ने में आसान बनाता है लेकिन यहां इसका कोई अन्य प्रभाव नहीं है। उदाहरण के लिए, आप एक ही टेबल को कई बार शामिल करने के लिए टेबल एलियासेस का भी इस्तेमाल कर सकते हैं। -
शामिल होने की शर्त
ON r.domainid::varchar(8) = d.ddid
केवल उन पंक्तियों को एक साथ जोड़ता है जहाँ दो भाव बिल्कुल मेल खाते हैं। फिर से, उन मैन्युअल में मूल बातें के बारे में पढ़ें। ए> (या कोई अन्य स्रोत)।
यह एक साधारण प्रश्न है, यहाँ समझाने के लिए बहुत कुछ नहीं है।