update sequelize raw query example create javascript sql postgresql orm sequelize.js

javascript - query - sequelize raw



Donde condiciĆ³n para mesa unida en Sequelize ORM (2)

Quiero obtener una consulta como esta con secuela ORM:

SELECT "A".*, FROM "A" LEFT OUTER JOIN "B" ON "A"."bId" = "B"."id" LEFT OUTER JOIN "C" ON "A"."cId" = "C"."id" WHERE ("B"."userId" = ''100'' OR "C"."userId" = ''100'')

El problema es que la secuela no me permite hacer referencia a la tabla "B" o "C" en la cláusula where. Código siguiente

A.findAll({ include: [{ model: B, where: { userId: 100 }, required: false }, { model: C, where: { userId: 100 }, required: false }] ]

me da

SELECT "A".*, FROM "A" LEFT OUTER JOIN "B" ON "A"."bId" = "B"."id" AND "B"."userId" = 100 LEFT OUTER JOIN "C" ON "A"."cId" = "C"."id" AND "C"."userId" = 100

que es una consulta completamente diferente, y el resultado de

A.findAll({ where: { $or: [ {''"B"."userId"'' : 100}, {''"C"."userId"'' : 100} ] }, include: [{ model: B, required: false }, { model: C, required: false }] ]

ni siquiera es una consulta válida:

SELECT "A".*, FROM "A" LEFT OUTER JOIN "B" ON "A"."bId" = "B"."id" LEFT OUTER JOIN "C" ON "A"."cId" = "C"."id" WHERE ("A"."B.userId" = ''100'' OR "A"."C.userId" = ''100'')

¿La primera consulta es incluso posible con la secuela, o debo limitarme a las consultas en bruto?


Envuelva las columnas que hacen referencia a tablas unidas en $$

A.findAll({ where: { $or: [ {''$B.userId$'' : 100}, {''$C.userId$'' : 100} ] }, include: [{ model: B, required: false }, { model: C, required: false }] });