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

एक क्वेरी में समग्र विदेशी/प्राथमिक कुंजी के कॉलम पर तालिकाओं में शामिल हों

एक NATURAL JOIN है :

SELECT *
FROM   subscription
NATURAL JOIN delivery;

मैनुअल को SELECT पर उद्धृत करना :

यह आपके परीक्षण सेटअप के लिए काम करेगा, लेकिन यह जो आप मांगते हैं वह सख्ती से नहीं कर रहा है . कनेक्शन समान नाम साझा करने वाले सभी स्तंभों पर आधारित है। विदेशी चाबियों पर विचार नहीं किया जाता है। ऐसे मामले जहां NATURAL JOIN एक अच्छा विचार है जो बहुत कम हैं और बहुत दूर हैं।

कोड को सरल बनाएं / कम वर्बोज़

शुरुआत के लिए, आप टेबल उपनामों का उपयोग कर सकते हैं और आपको ON के साथ जुड़ने की शर्तों के आसपास कोष्ठक की आवश्यकता नहीं है (USING . के विपरीत ):

SELECT *
FROM   subscription s
JOIN   delivery     d ON d.magazine_id = s.magazine_id
                     AND d.user_id = s.user_id;

चूंकि शामिल होने की स्थिति में कॉलम नाम समान हैं, आप USING . के साथ और अधिक सरल बना सकते हैं :

SELECT *
FROM   subscription s
JOIN   delivery     d USING (magazine_id, user_id);

स्वचालित रूप से विदेशी कुंजी बाधाओं के आधार पर जुड़ने के लिए कोई वाक्यविन्यास संस्करण नहीं है। आपको सिस्टम कैटलॉग को क्वेरी करना होगा और SQL को गतिशील रूप से बनाना होगा।



  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 भूमिका नहीं छोड़ सकता। त्रुटि:`गिराया नहीं जा सकता क्योंकि कुछ वस्तुएं इस पर निर्भर करती हैं`

  2. डेटाबेस में भंडारण वर्ष

  3. PostgreSQL में JSON विदेशी कुंजी

  4. एक गैर-पूर्णांक के लिए पूर्णांक के लिए त्रुटि अमान्य इनपुट सिंटैक्स?

  5. PostgreSQL के साथ जाने पर धीमी समस्या