J'ai trois modèles, User, Project et ProjectMember. Garder les choses simples, les modèles ont les attributs suivants:
User
- id
Project
- id
- owner_id
- is_published
ProjectMember
- user_id
- project_id
Utilisation sequelize.js, je veux trouver tous les projets où le propriétaire du projet est un utilisateur spécifique, ou où il est membre du projet pour ce projet dont l'utilisateur est cet utilisateur, ou où le projet est publié. Je suppose que le SQL brut ressemblerait à quelque chose comme ceci:
SELECT p.*
FROM Project p
LEFT OUTER JOIN ProjectMember m
ON p.id = m.project_id
WHERE m.user_id = 2
OR p.owner_id = 2
OR p.is_published = true;
Il y a beaucoup d'exemples là-bas sur la façon d'effectuer une requête sur une association, mais je ne peux trouver aucune sur la façon de le faire sous condition. Je suis en mesure d'interroger simplement l'association en utilisant ce code:
projModel.findAll({
where: { },
include: [{
model: memberModel,
as: 'projectMembers',
where: { 'user_id': 2 }
}]
})
Comment puis-je combiner cette requête où dans un $ ou pour vérifier colonnes OWNER_ID et is_published du projet?
cela donne une erreur et je sais que la documentation dit la même chose –
'SequelizeEagerLoadingError: Le client est associé à Deal en utilisant un alias. Vous avez inclus un alias (abc), mais il ne correspond pas à l'alias défini dans votre association. » –
@MuhammadUmer Il est impossible de savoir sans plus de code, mais il semble que vous ayez mal défini vos modèles. Là encore, je ne suis pas un expert. Avez-vous essayé de poser une question sur SO? – aboveyou00