Привет всем, надеюсь, ваш день будет отличным.Я искал по всему интернету и вот моя последняя надежда.Надеюсь, какая-то прекрасная душа объяснит мне, почему это происходит, потому что я не мог понять из документации или других вопросов и ответов здесь, в стеке, переполнение света в этой ситуации.
Случай довольно прост: Короче, яполучение обратного SQL-запроса.
У меня есть эта ассоциативная ссылка:
User.belongsToMany(User, {as: 'parents', through: 'kids_parents',foreignKey: 'parent', otherKey: 'kid'});
User.belongsToMany(User, {as: 'kids', through: 'kids_parents', foreignKey: 'kid',otherKey: 'parent'});
, тогда в моем контроллере у меня есть это:
User.findById(2).then((parent) => {
parent.getKids().then((kids)=> {
console.log(kids);
});
Я ожидал быполучить ВСЕХ детей из родительского экземпляра.Это правильно ?Вместо этого я получаю противоположных ВСЕХ родителей из определенного идентификатора KID.
SELECT `user`.`id`, `user`.`name`, `user`.`surname`, `user`.`username`, `kids_parents`.`id` AS `kids_parents.id`, `kids_parents`.`kid` AS `kids_parents.kid`, `kids_parents`.`parent` AS `kids_parents.parent` FROM `users` AS `user` INNER JOIN `kids_parents` AS `kids_parents` ON **`user`.`id` = `kids_parents`.`parent`** AND **`kids_parents`.`kid` = 2;**
и отмечаю эту строку:
user
. id
= kids_parents
. parent
И kids_parents
. kid
= 2;
Может кто-нибудь объяснить, почему это происходит?Что мне здесь не хватает?Спасибо за внимание.