[英]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_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
likes.deleted
喜歡。刪除, dislikes
。 id_dislike
AS dislikes.id_dislike
喜歡。id_dislike, dislikes
。 id_user
AS dislikes.id_user
喜歡。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
FROM users
AS users
INNER JOIN likes
AS likes
ON users
。 id_user
= likes
。 id_user
和likes
。 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.