如何解决向我的续集查询添加限制会引发错误
这正常工作
let data=await db.company.findAll({
include:{model:db.user,as:'users'},where:{'$users.id$':7}
});
但是一旦我在下面添加限制,就会引发错误
let data=await db.company.findAll({
limit:10,include:{model:db.user,where:{'$users.id$':7}
});
这是我执行带限制的错误时的错误。
{
name: "SequelizeDatabaseError",parent: {
message: "The multi-part identifier "users.id" could not be bound.",code: "EREQUEST",number: 4104,state: 1,class: 16,serverName: "LAPTOP-5ED24571",procName: "",lineNumber: 1,sql: "SELECT [company].*,[users].[id] AS [users.id],[users].[username] AS [users.username],[users].[name] AS [users.name],[users].[address] AS [users.address],[users].[active] AS [users.active],[users].[email] AS [users.email],[users].[phone] AS [users.phone],[users].[job_role] AS [users.job_role],[users].[time_zone] AS [users.time_zone],[users].[country] AS [users.country],[users].[currency] AS [users.currency],[users].[induction] AS [users.induction],[users].[createdAt] AS [users.createdAt],[users].[updatedAt] AS [users.updatedAt],[users].[userRoleId] AS [users.userRoleId],[users->user_company_mm].[id] AS [users.user_company_mm.id],[users->user_company_mm].[userId] AS [users.user_company_mm.userId],[users->user_company_mm].[companyId] AS [users.user_company_mm.companyId],[users->user_company_mm].[createdAt] AS [users.user_company_mm.createdAt],[users->user_company_mm].[updatedAt] AS [users.user_company_mm.updatedAt] FROM (SELECT [company].[id],[company].[name],[company].[address],[company].[city],[company].[country],[company].[state_region],[company].[logo],[company].[numberOfLocations],[company].[numberOfEmployees],[company].[audience_builder],[company].[creator_user_id],[company].[tags],[company].[createdAt],[company].[updatedAt] FROM [company] AS [company] WHERE [users].[id] = 7 ORDER BY [company].[id] OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY) AS [company] LEFT OUTER JOIN ( [user_company_mm] AS [users->user_company_mm] INNER JOIN [user] AS [users] ON [users].[id] = [users->user_company_mm].[userId]) ON [company].[id] = [users->user_company_mm].[companyId];"
}
知道为什么会这样吗?谢谢
解决方法
我不一定对sequelize.js熟悉。但是查看您的查询语句,您的子查询中就有一个WHERE条件,将其限制为[Users]。[Id] =7。但这在查询上下文的这一部分中不存在。
...
FROM
(SELECT [company].[id],[company].[name],[company].[address],[company].[city],[company].[country],[company].[state_region],[company].[logo],[company].[numberOfLocations],[company].[numberOfEmployees],[company].[audience_builder],[company].[creator_user_id],[company].[tags],[company].[createdAt],[company].[updatedAt] FROM [company] AS [company]
/* HERE --> */ WHERE [users].[id] = 7 ORDER BY [company].[id] OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY
)
AS [company] LEFT OUTER JOIN
( [user_company_mm] AS [users->user_company_mm] INNER JOIN [user]
AS [users] ON [users].[id] = [users->user_company_mm].[userId]) ON [company].[id] = [users->user_company_mm].[companyId]
但是我不能说为什么查询结构如此。那将是您如何配置它/如何使平衡起作用的方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。