Javascript Sequelize-与subselect连接(1:n-从第二个表中选择最后一行)
我有两个1:N关系的表:Javascript Sequelize-与subselect连接(1:n-从第二个表中选择最后一行),javascript,mysql,sequelize.js,Javascript,Mysql,Sequelize.js,我有两个1:N关系的表:用户和付款 我需要使用Sequelize.js ORM从第一个表中选择所有数据,并且只从第二个表中选择最后一行(所有上次付款的用户) 在SQL中,类似于: SELECT u.*, p.* FROM users u LEFT JOIN payments p ON u.id = p.user_ID INNER JOIN ( SELECT payment_ID, MAX(date) maxDate FR
用户
和付款
我需要使用Sequelize.js ORM从第一个表中选择所有数据,并且只从第二个表中选择最后一行(所有上次付款的用户)
在SQL中,类似于:
SELECT u.*, p.*
FROM users u
LEFT JOIN payments p
ON u.id = p.user_ID
INNER JOIN
(
SELECT payment_ID, MAX(date) maxDate
FROM payments
GROUP BY user_ID
) b ON p.payment_ID = b.payment_ID
WHERE u.package = 1
我不知道如何在sequelize ORM中编写这个查询。我不能使用原始SQL,因为后面有更多的逻辑、更多的连接、条件等,都是用ORM编写的。这只是一个很小的例子
我最后一次尝试:
Users.findAll({
where: {package: 1},
include: [{
model: Payments,
where: {
"payment_ID": sequelize.literal('MAX(date)')
}}
}]
});