我有两个表 - customer
和order
,一对多关系。我想在一个查询中检索所有客户数据和他的订单的总价值。
在原始SQL中可能是这样的:
select customer.*, o.total from customer
inner join (select sum(value) as total, customer_id from
order group by customer_id) as o
on customer.id=i.customer_id
我的问题是 - 如何在没有编写SQL的情况下在Sequelize中表达此查询?这甚至可能吗?
答案 0 :(得分:0)
您好xersee首先要创建两个表customer和sequalize.js格式的订单 然后在从表顺序求值列和customer_id列之后将其放入一个表中 然后,在ORM Style中加入带有customer表的新表 请参考以下链接,它可能对您有所帮助。 How to make join querys using sequelize in nodejs
答案 1 :(得分:0)
尝试一下:
const query = `
SELECT
table_a.table_a_id AS "table_a.table_a_id",
table_b.table_b_id AS "table_b.table_b_id"
FROM
table_a
LEFT JOIN
(SELECT * FROM table_b) AS table_b
ON
table_a.table_b_id = table_b.table_b_id
`;
const options = {
model: models.table_a,
mapToModel: true,
nest: true,
raw: true,
type: sequelize.QueryTypes.SELECT
};
let tableAs = await db.sequelize.query(query, options);
请注意,在select语句中需要别名。似乎Sequelize.js通过名称中的点来区分表。
结果与模型得到的结果并不完全相同。