Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Wpisz podzapytania ORM

Mam nadzieję, że ta odpowiedź pomoże innym w korzystaniu z podzapytania 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();

Używałem '('+subquery.getQuery()+')' do pobrania zapytania wybierającego podzapytanie jako odpowiednika

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

......

.... ) łączony ON t1.e =łączony.e

Na podstawie tego, co rozumiem:

  • Join faktycznie jest równe inner join

  • .select jest i jest odpowiednikiem select w SQL. Możesz także dodaćaliases (jak w SQL).

  • .addSelect jest podobny do , in select

  • Istnieją dwa rodzaje wyników, które można uzyskać za pomocą programu select querybuilder:encje lub wyniki surowe. Aby opisać, czy chcesz, aby dane były encjami (getOne i getMany ) lub co to jest(getRawOne i 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. Domyślna kolejność wierszy dla zapytania select w Oracle

  2. Importowanie pliku .csv do aplikacji Oracle Forms

  3. Jak wpisać znak nowej linii w Oracle?

  4. Jak wywołać procedurę składowaną Oracle, która zawiera typ zdefiniowany przez użytkownika w java?

  5. Hash join w Oracle z przykładem