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

पोस्टग्रेज में चयन करें, एक कॉलम सबक्वायरी को सरणी के रूप में वापस करें?

एग्रीगेट फ़ंक्शन का इस्तेमाल करें :

select
    usr_id, 
    name, 
    array_agg(tag_id) as tag_arr
from users
join tags using(usr_id)
group by usr_id, name

या कोई सरणी कंस्ट्रक्टर एक सबक्वेरी के परिणामों से:

select
    u.usr_id, 
    name, 
    array(
        select tag_id 
        from tags t 
        where t.usr_id = u.usr_id
        ) as tag_arr
from users u

दूसरा विकल्प एक साधारण एक-स्रोत क्वेरी है जबकि पहला अधिक सामान्य है, विशेष रूप से सुविधाजनक है जब आपको संबंधित तालिका से एक से अधिक समुच्चय की आवश्यकता होती है। साथ ही, पहले संस्करण को बड़ी तालिकाओं पर तेज़ होना चाहिए।

ध्यान दें, बेहतर प्रदर्शन के लिए usr_id दोनों तालिकाओं में स्तंभों को अनुक्रमित किया जाना चाहिए। जबकि आमतौर पर users.usr_id एक प्राथमिक कुंजी है, कभी-कभी कोई यह भूल सकता है कि संदर्भ स्तंभ की अनुक्रमणिका भी उपयोगी है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. postgresql JSON को JSONB में माइग्रेट कर रहा है

  2. पोस्टग्रेएसक्यूएल:नॉट इन बनाम एक्सेप्ट परफॉर्मेंस अंतर (संपादित # 2)

  3. INSERT कमांड ::त्रुटि:कॉलम मान मौजूद नहीं है

  4. postgresql ट्रिगर:ऑटो कमिट को अक्षम करें और आइसोलेशन स्तर सेट करें

  5. Powershell का उपयोग करके PostgreSQL से डेटा पुनर्प्राप्त करें