我正在将 Sequelize ORM 与 Node.js 结合使用,但我无法理解如何使用它构建以下查询。
SELECT service.*, serviceCollection.*, client.companyName, client.idclient
FROM service
INNER JOIN serviceCollection
ON service.serviceCollection_idserviceCollection = serviceCollection.idserviceCollection
INNER JOIN client
ON serviceCollection.client_idclient = client.idclient
当我在 phpMyAdmin 上尝试时,此查询有效且运行良好。 复杂的是客户端模型与服务没有直接关系,所以在尝试这样做时:
Service.findAll({include : [ServiceCollection, Client]}).then(function(service){
if(service) {
res.status(200).json(service);
}
});
我收到以下错误:
Unhandled rejection Error: client is not associated to service!
我如何准备查询,以便从 serviceCollection 中的外键获取客户端信息,而不是从原始模型 - service 。
我不能只在 client 上使用 include
因为它会给我错误,我需要以其他方式将它与此查询相关联并且我似乎无法在文档中找到解决方案。
最佳答案
你有没有在servicecollection和client之间建立关系?在这种情况下,您可以这样做:
Service.findAll({
include : [
{
model: ServiceCollection,
required: true,
include: [{model: Client, required: true }]}
]
});
required: true
创建内连接,默认为左连接
关于javascript - 使用 Sequelize ORM 创建多个 INNER JOINS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31983885/