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

टाइपओआरएम सबक्वेरी

मुझे आशा है कि यह उत्तर दूसरों को TypeORM सबक्वेरी का उपयोग करने में मदद कर सकता है।

const subquery = await getManager()
    .createQueryBuilder(table4, 't4')
    .select('"t4".f')
    .addSelect('"t4".g')
    .addSelect('"t5".e')
    .addSelect('"t6".h')
    .innerJoin(table5, 't5', '"t4".g = "t5".g')
    .innerJoin(table6, 't6', '"t6".g = "t4".g')
    .where('"t4".k = 4 AND ("t6".i = 2 OR ("t6".i = 1 AND "t6".j = 1))');

  model = await getManager()
    .createQueryBuilder(table1, 't1')
    .select('"t1".a')
    .addSelect("TO_CHAR (MAX (jointable.f), 'MON YYYY')", 'f')
    .addSelect('"t3".c')
    .addSelect('"t3".d')
    .addSelect('"t1".e')
    .leftJoin('table2', 't2', '"t2".e = "t1".e')
    .innerJoin(table3, 't3', '"t3".d = "t2".d')
    .innerJoin('('+subquery.getQuery()+')', 'jointable', '"t1".e = jointable.e')
    .where('jointable.h = :h AND (:d = 3 OR "t3".d = :d)',
      { h: h, d: d })
    .groupBy('"t1".a, "t3".c, "t3".d, "t1".e')
    .orderBy('"t1".a', 'ASC')
    .getRawMany();

मैं उपयोग कर रहा था '('+subquery.getQuery()+')' सबक्वेरी प्राप्त करने के लिए क्वेरी को समकक्ष के रूप में चुनें

<ब्लॉकक्वॉट>

(चुनें f, t4.g, t5.e, t6.h ....

......

.... ) संयुक्त रूप से t1.e =jointable.e

. पर

मैं जो समझता हूं उसके आधार पर:

  • Join वास्तव में inner join . के बराबर है

  • .select select . के बराबर और है एसक्यूएल में। आप aliases भी जोड़ सकते हैं (एसक्यूएल में) के रूप में।

  • .addSelect , in select

  • चुनिंदा क्वेरीबिल्डर का उपयोग करके आप दो प्रकार के परिणाम प्राप्त कर सकते हैं:इकाइयां या कच्चे परिणाम। यह वर्णन करने के लिए कि क्या आप डेटा को संस्थाओं के रूप में चाहते हैं (getOne और getMany ) या क्या है (getRawOne और getRawMany )।




  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. अपने Oracle सत्र के दिनांक स्वरूप की जांच कैसे करें

  3. मैं ORA-00911:अमान्य वर्ण त्रुटि को कैसे हल कर सकता हूं?

  4. एसक्यूएल (ओरेकल):ऑर्डर बाय और लिमिट

  5. एक रिपोर्ट में बारकोड \ या कई बारकोड के साथ कई रिपोर्ट कैसे प्रिंट करें