3
ManyToMany sequelize 관계에 문제가 있습니다.Node.js Sequelize 잘못된 SQL을 생성하는 ManyToMany 관계
SELECT
players . *,
teams.name AS `teams.name`,
teams.id AS `teams.id`
FROM
players
LEFT OUTER JOIN
teams_has_players ON teams_has_players.player_id = players.id
LEFT OUTER JOIN
teams ON teams.id = teams_has_players.team_id
WHERE
players.team_id = '1';
문제로 보이는 : 여기
여기
var db = {
players: sequelize.define('players', {
name: Sequelize.STRING
}),
teams: sequelize.define('teams', {
name: Sequelize.STRING
}),
init: function() {
this.players.hasMany(this.teams, {joinTableName: 'teams_has_players'});
this.teams.hasMany(this.players, {joinTableName: 'teams_has_players'});
this.players.sync();
this.teams.sync();
}
};
가
db.players.findAll({
where: {team_id: 1},
include: ['teams']
}).success(function(results) {
// print the results
});
는 위의 발견은 다음과 같은 SQL을 생성합니다 찾을 수있다 ... 내 모델입니다 WHERE 문은 WHERE teams.team_id = '1'
어디서 이런 문제가 발생합니까?
미리 감사드립니다.
알려 주셔서 감사합니다. 버그가 아니 었음을 알려 주셔서 감사합니다. db.teams.findAll ({ : {id : req.params.team_id}, 포함 : [ ' 선수] }) 성공 (기능 (결과) { res.json (결과); }); 예상대로 작동합니다. Sascha를 후한 주셔서 감사합니다. 설명서가 더 있으면 좋겠어요. –
예 많은 것들이 개선되어야합니다. 여가 시간에 모든 것을 한꺼번에 처리 할 수 있다면 :) – sdepold