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

लेफ्ट जॉइन से अपडेट पोस्टग्रेज करें

इस अद्यतन क्वेरी को SQL-सर्वर प्रपत्र से PostgreSQL में बदलने का एक सामान्य तरीका यहां दिया गया है:

UPDATE Users
 SET bUsrActive = false
WHERE
 ctid IN (
   SELECT u.ctid FROM Users u
      LEFT JOIN Users u2 ON u.sUsrClientCode = u2.sUsrClientCode AND u2.bUsrAdmin = 1 AND u2.bUsrActive = 1
    WHERE u.bUsrAdmin = 0 AND u.bUsrActive = 1 AND u2.nkUsr IS NULL
)

ctid एक छद्म स्तंभ है जो एक पंक्ति के अद्वितीय स्थान की ओर इशारा करता है। आप इसके बजाय तालिका की प्राथमिक कुंजी का उपयोग कर सकते हैं यदि उसके पास एक है।

प्रश्न से प्रश्न #2 वह नहीं करता जिसकी आप अपेक्षा करते हैं क्योंकि अद्यतन तालिका Users कभी भी एक ही टेबल में शामिल नहीं होता है Users u FROM खंड में। जैसे जब आप FROM क्लॉज में टेबल का नाम दो बार डालते हैं, तो वे परोक्ष रूप से जुड़ते या बंधे नहीं होते हैं, उन्हें पंक्तियों के दो स्वतंत्र सेट के रूप में माना जाता है।



  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. नोड सर्वर पोस्टग्रेज डीबी से कनेक्ट नहीं हो सकता है

  3. एक एक्सटेंशन बनाने का प्रयास करते समय PostgreSQL त्रुटि

  4. PostgreSQL फ़ंक्शन शून्य लौट रहा है

  5. Postgresql में होस्ट नाम खोजें