因此,我试图避免只用替换项进行查询,但基本上,我要结束的查询看起来像这样:
select *
from "sharedGameData" sg
left outer join endgame eg1 on eg1.game_id = sg.gameid and eg1.playerid = '8E179150DC1414CD'
inner join endgame eg2 on eg2.game_id = eg1.game_id
ORDER BY sg."ts" DESC NULLS LAST
基本上,我有一个sharedGameData对象,其中包含共享信息。但是,每个游戏都有4个子行(endgame表)。我想找到所有基于玩家编号(有或没有限制)的游戏。
使用上面的查询几乎立即返回。
我可以无限制地运行查询,但是如果添加限制,则会因以下错误而中断:
缺少表“ endgames”的FROM子句条目。
关于如何解决此错误的任何想法?
var includeObj = []
if (args.includeGameDetails) {
includeObj = [
{
model: db.sequelize.models.endgame,
as: 'endgames',
required: false,
attributes: {},
where: { playerid: root.id }
},
{
model: db.sequelize.models.endgame,
required: true,
as: 'endgames2',
where: { game_id: { $col: 'endgames.game_id' } }
}
]
}
//console.log(whereStatment)
return db.sequelize.models.sharedGameData
.findAndCountAll({
where: whereStatment,
limit: args.limit,
offset: args.offset,
order: [
[
args.orderby ? args.orderby : 'ts',
args.direction ? args.direction : 'DESC NULLS LAST'
]
],
include: includeObj
})
.then(result => {
// console.log(result)
// console.log(result.count)
console.log(result.rows)
return {
games: result.rows,
count: result.count
}
})