Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Ketik subkueri ORM

Saya harap jawaban ini dapat membantu orang lain untuk menggunakan subkueri 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();

Saya menggunakan '('+subquery.getQuery()+')' untuk mendapatkan kueri pemilihan subkueri sebagai setara dengan

(PILIH f, t4.g, t5.e, t6.h ....

......

.... ) dapat disambung ON t1.e =dapat disambungkan.e

Berdasarkan apa yang saya pahami:

  • Join sebenarnya sama dengan inner join

  • .select adalah dan setara dengan select dalam SQL. Anda juga dapat menambahkanaliases (seperti dalam SQL).

  • .addSelect mirip dengan , in select

  • Ada dua jenis hasil yang bisa Anda peroleh dengan menggunakan pembuat kueri terpilih:entitas atau hasil mentah. Untuk menjelaskan apakah Anda menginginkan data sebagai entitas (getOne dan getMany ) atau apa itu(getRawOne dan 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. Oracle:apakah urutan kolom penting dalam indeks?

  2. ORA-01264:Tidak dapat membuat nama file logfile

  3. Fungsi NLS_CHARSET_DECL_LEN() di Oracle

  4. Cara Mengembalikan Jumlah Detik Lewat Tengah Malam di Oracle Database

  5. ini kesalahan ORA-12154:TNS:tidak dapat menyelesaikan pengidentifikasi koneksi yang ditentukan?