gpt4 book ai didi

node.js - NodeJS Sequelize 和 FindAll 以及 Include 和约束

转载 作者:太空宇宙 更新时间:2023-11-03 22:02:11 25 4
gpt4 key购买 nike

我正在尝试使用“查找全部”中的“包含”功能来渴望在单个查询中加载我需要的数据。我的问题是所有包含都是 LEFT OUTER JOIN ...这很好,但我没有找到向 LEFT OUTER JOIN 添加额外约束的方法。

我的查询类似于:

Matches.findAll(
{where: ["match.isPublished = ?", true],
include: [RoundMaps,
Locations,
{model: MemberMaps, as: "MemberMaps", where: ["memberMaps.memberUUID = ?", authenticatedUser.uuid]}]})

但这似乎不受支持......至少我编写语法的方式是这样。我无法将该约束添加到 LEFT OUTER JOIN 上的约束中...向 WHERE 子句添加相同的约束不起作用...因为这仅给我与成员关联的匹配项。我想要所有公开匹配的列表,并了解该成员已经建立了哪些关联。

可以吗?Sequelize 似乎已经完成了大部分事情!但仍然在一些事情上挣扎。

欢迎提出见解!

干杯

最佳答案

根据您的问题,不可能将 where 子句与 LEFT OUTER JOIN 一起使用。为此,您必须编写 SQL 查询来列出所有公共(public)匹配,并了解成员已经建立了关联的哪些匹配。

sequelize.query('SELECT * FROM "Matches" LEFT OUTER JOIN "RoundMaps" ON "Matches".id = "RoundMaps".match_id LEFT OUTER JOIN "Locations" ON "Matches".id = "Locations".match_id    LEFT OUTER JOIN (SELECT * FROM "MemberMaps" WHERE "MemberMaps".memberUUID = ?) AS "MemberMaps" ON "Matches".id = "MemberMaps".match_id WHERE "Matches".isPublished = ?', null, { raw: true }, [memberUUID,true ]).success(function(myTableRows) {
console.log(myTableRows);
res.send(myTableRows);
});

Executing raw SQL queries in Sequelize

关于node.js - NodeJS Sequelize 和 FindAll 以及 Include 和约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19050248/

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