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

JOOQ में उनकी समग्र प्राथमिक कुंजी द्वारा एकाधिक पंक्तियों का चयन कैसे करें?

इसे मैन्युअल रूप से कैसे करें

आप DSL.row() एक पंक्ति मान व्यंजक बनाने के लिए, और फिर:

row(TEST_TBL.ID_PART_1, TEST_TBL.ID_PART_2).in(
  row("id_part_1_1", "id_part_2_1"),
  row("id_part_1_2", "id_part_2_2")
);

यह भी देखें jOOQ IN . के बारे में मैन्युअल अनुभाग विधेय, डिग्री> 1

एम्बेड करने योग्य कुंजियों का उपयोग करें

वैकल्पिक रूप से, आप नए jOOQ 3.14 <embeddablePrimaryKeys/> सुविधा, जो आपको सभी प्राथमिक कुंजियों और उनकी संदर्भित विदेशी कुंजियों के लिए रिकॉर्ड प्रकार उत्पन्न करने की अनुमति देती है। तब आपकी क्वेरी पढ़ी जाएगी:

ctx.select()
   .from(TEST_TBL)
   .where(TEST_TBL.TEST_TBL_PKEY.in(
      new TestTblPkeyRecord("id_part_1_1", "id_part_2_1"),
      new TestTblPkeyRecord("id_part_1_2", "id_part_2_2")
   ))
   .fetch();

यह आपकी मूल क्वेरी के समान ही क्वेरी उत्पन्न करता है, लेकिन यह सुरक्षित रूप से टाइप करता है, और आप एक कुंजी कॉलम को फिर कभी नहीं भूलेंगे। न केवल जब आप प्राथमिक कुंजी को क्वेरी करते हैं, बल्कि जब आप इसमें शामिल होते हैं! कुंजी बदलने से संकलन त्रुटि होगी:

ctx.select()
   .from(TEST_TBL)
   .join(OTHER_TEST_TBL)
   .on(TEST_TBL.TEST_TBL_PKEY.eq(OTHER_TEST_TBL.TEST_TBL_PKEY.TEST_TBL_FKEY))
   .fetch();

या एक अंतर्निहित शामिल हों इस तरह दिखेगा:

ctx.select(OTHER_TEST_TBL.testTbl().fields(), OTHER_TEST_TBL.fields())
   .from(OTHER_TEST_TBL)
   .fetch();



  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 में regexp_replace यूनिकोड

  2. अद्यतन करने का मतलब है कि सबक्वायरी में मूल्य कहां है जिसमें ग्रुप बाय है तो कोई रेस-कंडीशन समस्या नहीं है?

  3. मैं HTML कोड को Postgresql DB तालिका फ़ील्ड में कैसे संग्रहीत कर सकता हूं?

  4. psycopg2.ProgrammingError:संबंध घटना मौजूद नहीं है

  5. मैं मैक ओएस एक्स पर पोस्टग्रेएसक्यूएल सर्वर कैसे शुरू कर सकता हूं?