Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Truy vấn con TypeORM

Tôi hy vọng câu trả lời này có thể giúp những người khác sử dụng truy vấn con 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();

Tôi đang sử dụng '('+subquery.getQuery()+')' để lấy truy vấn con select query tương đương với

(CHỌN f, t4.g, t5.e, t6.h ....

......

....) có thể kết nối ON t1.e =jointable.e

Dựa trên những gì tôi hiểu:

  • Join thực sự bằng inner join

  • .select là và tương đương với select trong SQL. Bạn cũng có thể thêm aliases (như trong SQL).

  • .addSelect tương tự như , in select

  • Có hai loại kết quả bạn có thể nhận được bằng cách sử dụng trình tạo truy vấn chọn lọc:thực thể hoặc kết quả thô. Để mô tả liệu bạn có muốn dữ liệu dưới dạng thực thể (getOnegetMany ) hoặc cái gì (getRawOnegetRawMany ).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách đặt hơn 1000 giá trị vào mệnh đề Oracle IN

  2. Hiển thị tất cả các truy vấn đến cơ sở dữ liệu Oracle

  3. Làm thế nào để cấu hình bộ ký tự UTF8 trong Oracle?

  4. Trình điều khiển ODP.NET được quản lý không hiển thị trong hộp thoại Nguồn dữ liệu

  5. Tìm tất cả các giá trị không phải dạng số trong một cột trong Oracle