gpt4 book ai didi

mysql - 同表 Sequelize 上的内连接

转载 作者:行者123 更新时间:2023-11-29 11:00:02 25 4
gpt4 key购买 nike

我已经编写了一个 SQL 查询,并尝试将其调整为 Sequelize,但无法弄清楚如何在同一个表上创建关联。这是 SQL:

SELECT t1.*
FROM `configurations` t1
INNER JOIN
(
SELECT max(configuration_start) maxConfigStart, pb_id
FROM `configurations`
WHERE
active = 1
AND DATE(configuration_start) <= DATE(NOW())
GROUP BY `pb_id`
) t2
ON t1.`pb_id` = t2.`pb_id`
AND t1.`configuration_start` = t2.`maxConfigStart`
WHERE t1.`active` = 1
ORDER BY t1.`configuration_start` DESC

这是模型定义:

configurations = sequelize.define 'configurations', {
id:
type: Sequelize.INTEGER
primaryKey: true
autoIncrement: true
configuration_name: Sequelize.STRING
configuration_start: Sequelize.DATE
configuration_end: Sequelize.DATE
created: Sequelize.DATE
updated: Sequelize.DATE
}, {
timestamps: false,
scopes: {
currentConfigTimes: {
attributes: ['pb_id', [sequelize.fn('max', sequelize.col('configuration_start')), 'configuration_start']]
where:
active: 1
configuration_start:
lte: new Date()
group: ['pb_id']
},
currentConfigIds: {
attributes: ['pb_id', 'configuration_start', 'id']
where:
active: 1
configuration_start:
lte: new Date()
order: [['configuration_start', 'DESC']]
}
}
}

如果有人能提供任何帮助,我们将不胜感激。本质上,我试图获取每个 pb_id 的最新配置。也许有更好的方法?

最佳答案

目前看来,使用 Sequelize 实际上无法实现这一点。在花费了大量时间研究他们的文档并尝试了解执行此操作的最佳方法之后,我发现了 this Github issue试图解决完全相同的问题。此时最好的解决方案就是使用原始查询。

关于mysql - 同表 Sequelize 上的内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42427924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com