【发布时间】:2022-02-08 21:44:36
【问题描述】:
我的数据库有一个用户、喜欢、不喜欢、包裹表。
likes、dislikes、parcels 表通过 user_id 字段链接到 users 表,该字段存在于每个链接表中。
如何对 users 表中已删除 = false 字段值的点赞进行排序。 如果我向用户模型提出请求
let users = await models.users.findAll({
include: [
{
model: Likes,
as: "likes",
},
{
model: Dislikes,
as: "dislikes",
},
{
model: Parcels,
as: "parcels",
},
],
where: {
deleted: false,
},
});
在这种情况下,我得到了users表的所有值,其中字段deleted = false。
let users = await models.users.findAll({
include: [
{
model: Likes,
as: "likes",
where: {
deleted: false,
},
},
{
model: Dislikes,
as: "dislikes",
},
{
model: Parcels,
as: "parcels",
},
],
where: {
deleted: false,
},
});
sequelize 生成的请求文本
选择users.id_user,
users.name_1,
users.name_2,
users.name_3,
users.nation,
users.citizenship,
users.dateOfBirth,
users.placeOfWork,
users.education,users.url_photo,
users.deleted,
likes.id_like AS likes.id_like,
likes.id_user AS likes.id_user,
likes.date AS likes.date,
likes.deleted AS likes.deleted,
dislikes.id_dislike AS dislikes.id_dislike,
dislikes.id_user AS dislikes.id_user,
dislikes.date AS dislikes.date,
parcels.id_parcel AS parcels.id_parcel,
parcels.id_user AS parcels.id_user,
parcels.date AS parcels.date,
parcels.deleted AS parcels.deleted
发件人users 发件人users
内连接likes AS likes ON users.id_user = likes.id_user
和likes.deleted = FALSE
左外连接dislikes AS dislikes ON users.id_user = dislikes.id_user
左外连接 parcels AS parcels ON users.id_user = parcels.id_user
其中users.deleted = 错误;
在这种情况下,我只获取 users 表中分别在 likes 表中有记录的记录,user 表和 likes 表中的所有记录都有字段 deleted = false。
但是,我需要从 users 表中检索所有记录,无论他们是否有来自 likes 表的相关记录。而且所有记录都必须删除一个字段 - 错误
【问题讨论】:
标签: mysql sql node.js mariadb sequelize.js