繁体   English   中英

如何编写代码在嵌套表中使用where参数查询sequelize model

[英]How to write code to query sequelize model with where parameter in nested table

我的数据库有一个用户、喜欢、不喜欢、包裹表。

喜欢、不喜欢、包裹表通过 user_id 字段链接到用户表,该字段存在于每个链接表中。

如何对用户表中已删除 = false 字段值的点赞进行排序。 如果我向用户 model 发出请求

let users = await models.users.findAll({
  include: [
    {
      model: Likes,
      as: "likes",          
    },
    {
      model: Dislikes,
      as: "dislikes",          
    },
    {
      model: Parcels,
      as: "parcels",          
    },
  ],
  where: {
    deleted: false,
  },
});

在本例中,我获得了用户表的所有值,其中字段 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 生成的请求文本

SELECT users id_userusers name_1users name_2users name_3users nationusers citizenshipusers dateOfBirthusers placeOfWorkusers education
users url_photousers deletedlikes id_like AS likes.id_likelikes id_user AS likes.id_userlikes date AS likes.datelikes deleted likes.deleted喜欢。删除, dislikes id_dislike AS dislikes.id_dislike喜欢。id_dislike, dislikes id_user AS dislikes.id_user喜欢。id_user, dislikes date AS dislikes.dateparcels id_parcel AS parcels.id_parcel , parcels id_user AS parcels.id_userparcels date AS parcels.date 。日期, parcels deleted AS parcels.deleted FROM users AS users INNER JOIN likes AS likes ON users id_user = likes id_userlikes deleted =FALSE LEFT OUTER JOIN dislikes AS dislikes ON users id_user = dislikes id_user LEFT OUTER JOIN parcels AS parcels ON users id_user = parcels id_user WHERE users deleted =假;

在这种情况下,我分别只得到用户表中在likes表中有记录的那些记录,user表和likes表中的所有记录都有字段deleted = false。

但是,我需要从 users 表中检索所有记录,无论他们是否有 likes 表中的相关记录。 而且所有记录都必须删除一个字段 - false

我不确定我是否收到你的问题,但似乎required: false是你需要的:

let users = await models.users.findAll({
  include: [
    {
      model: Likes,
      as: "likes",
      where: {
        deleted: false,
      },
      required: false,
    },
    {
      model: Dislikes,
      as: "dislikes",
     
    },
    {
      model: Parcels,
      as: "parcels",
     
    },
  ],
  where: {
    deleted: false,
  },
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM