PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

किस प्रकार के जॉइन का उपयोग करना है

जाहिर है, आपके पास शामिल होने वाले दोनों कॉलमों के लिए डुप्लिकेट मान हैं। कार्टेशियन उत्पाद के बजाय एक [INNER] JOIN इसके लिए उत्पादन करेंगे, आप चाहते हैं कि प्रत्येक पंक्ति का उपयोग केवल एक बार किया जाए . आप इसे एक पंक्ति संख्या जोड़कर प्राप्त कर सकते हैं (rn ) प्रति डुप्लीकेट और rn . पर शामिल हों इसके अतिरिक्त।

प्रत्येक तालिका में दूसरे की तुलना में समान मूल्य के लिए अधिक या कम डुप्ली हो सकते हैं जब तक कि आपके पास अतिरिक्त प्रतिबंध न हों (जैसे एफके बाधा) - लेकिन आपके प्रश्न में कुछ भी नहीं है। सभी रखने के लिए पंक्तियों में से कोई एक FULL [OUTER] JOIN का उपयोग करेगा . लेकिन आप परिणाम में 10000 रिकॉर्ड रखना चाहते हैं, जो कि table2 . की कार्डिनैलिटी है . तो यह एक LEFT [OUTER] JOIN table1 . पर (40 पंक्तियों के साथ) - और table1 . से संभावित अत्यधिक पंक्तियों को बाहर करें ।

SELECT t1."LocationArea", t2."Location"
FROM  (
   SELECT "Location"
        , row_number() OVER (PARTITION BY "Location") AS rn
   FROM   table2
   ) t2
LEFT JOIN (
   SELECT "LocationArea"
        , row_number() OVER (PARTITION BY "LocationArea") AS rn
   FROM   table1
   ) t1 ON t1."LocationArea" = t2."Location"
       AND t1.rn = t2.rn;

Postgres या SQL सर्वर के लिए काम करता है। MySQL विंडो फ़ंक्शंस का समर्थन नहीं करता है, आपको एक विकल्प की आवश्यकता होगी:

  • एसक्यूएल चयन सीमित किए बिना अंतिम प्रविष्टि

स्पष्ट होने के लिए:LEFT JOIN LEFT OUTER JOIN के लिए सिर्फ शॉर्टहैंड है , इसलिए आप पहले से ही बाहरी जुड़ाव का उपयोग कर रहे हैं। आपका कथन एक गलतफहमी है :

<ब्लॉककोट>

मैं ज़ोहो रिपोर्ट का उपयोग कर रहा हूँ जो बाहरी जुड़ाव का समर्थन नहीं करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres jsonb में सरणियों में संरचनाओं को क्वेरी करने के लिए उचित सूचकांक क्या है?

  2. एक तालिका के SQL अद्यतन फ़ील्ड दूसरे के फ़ील्ड से

  3. PostgreSQL वापसी परिणाम JSON सरणी के रूप में सेट?

  4. PostgreSQL में UPSERT (MERGE, INSERT ... ON DUPLICATE UPDATE) कैसे करें?

  5. PostgreSQL कमांड लाइन उपयोगिता से कैसे बाहर निकलें:psql