簡體   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