用Sequelize ORM创build多个INNER JOIN

我使用Sequelize ORM与Node.js,我不能得到我的头在如何build立以下查询与它。

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上运行良好。 复杂性在于Client模型与Service没有直接的关系,所以当试图这样做时:

 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而不是原来的模型 – 服务 。 我不能只使用include客户端上,因为它会给我错误,我需要以某种其他方式将它关联到此查询,我似乎无法find文档中的解决scheme。

你在servicecollection和客户端之间build立了一个关系吗? 在这种情况下,你可以这样做:

 Service.findAll({ include : [ { model: ServiceCollection, required: true, include: [{model: Client, required: true }]} ] }); 

required: true创build一个内连接,默认是一个左连接