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

Postgresql ने json सरणी पर बाहरी जुड़ाव छोड़ दिया

आपके प्रश्न का उत्तर देने के लिए:हाँ यह संभव है और आपकी क्वेरी ठीक यही करती है। हम इसे foo में तीसरी पंक्ति शुरू करके साबित कर सकते हैं। तालिका:http://sqlfiddle.com/#!15/06dfe/2

आपकी समस्या LEFT JOIN के साथ नहीं है करने के लिए json_array_elements लेकिन निहित पार्श्व क्रॉस के साथ शामिल हों। आपकी क्वेरी इसके बराबर है:

SELECT *
FROM foo 
  CROSS JOIN LATERAL json_array_elements (foo.bars :: json) foo_bars 
  LEFT OUTER JOIN bar ON (foo_bars ->> 'id') :: BIGINT = bar.ID;

http://sqlfiddle.com/#!15/06dfe/5

आप जो चाहते हैं, वह foo . के बीच एक पार्श्व बाईं ओर जुड़ना है और json_array_elements :

SELECT *
FROM foo LEFT JOIN LATERAL
    json_array_elements (foo.bars :: json) foo_bars ON true
LEFT OUTER JOIN bar ON (foo_bars ->> 'id') :: BIGINT = bar.ID;

http://sqlfiddle.com/#!15/06dfe/6




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जेडीबीसी कनेक्शन बनाया गया इनक्लिप्स काम नहीं करता जैसा इसे करना चाहिए

  2. मैं विंडोज़ में अपने पथ पर PostgreSQL/bin निर्देशिका कैसे डालूं?

  3. pg_dump रेल में नहीं मिला

  4. अलग-अलग निष्पादन समय को फ़िल्टर करते समय एक ही फ़ील्ड का उपयोग क्यों करते हैं? (विभिन्न सूचकांक उपयोग)

  5. regexp_split_to_table और row_number