ここに私の質問があります:私はクラスのすべてのゲームを取得しようとしています。クラスはゲームを主催することも、別のクラスのゲームを持つこともできます。JOINの重複結果
ゲームテーブルがあります。guest_class(クラスのID)とhost_class(クラスのID)
クラステーブルがあります。id_class(クラスのID)
私はゲームを取得しようとしています例をクラス1 1.
id_game: 1, id_class: 1, host_class: 3, guest_class: 1,
id_game: 2, id_class: 1, host_class: 1, guest_class: 6,
は、なぜ私は重複した結果を取得していたクラスで唯一の2試合がありますか?
QUERY
var classID = Number(req.query.searchValue);
var query = `SELECT * FROM games g
LEFT JOIN classes c ON c.id_class = g.host_class OR c.id_class = g.guest_class
WHERE (g.host_class = ? OR g.guest_class = ?)`;
con2.query(query, [classID,classID] , function (err, result) {
RESULT
[ RowDataPacket {
id_game: 1,
date: 2017-12-04T23:00:00.000Z,
host_class: 3,
guest_class: 1,
host_score: 34,
guest_score: 74,
tournament_id: 0,
group_id: 1,
statistics: '',
incidents: '',
id_class: 1},
RowDataPacket {
id_game: 1,
date: 2017-12-04T23:00:00.000Z,
host_class: 3,
guest_class: 1,
host_score: 34,
guest_score: 74,
tournament_id: 0,
group_id: 1,
statistics: '',
incidents: '',
id_class: 3},
RowDataPacket {
id_game: 2,
date: 2017-11-30T23:00:00.000Z,
host_class: 1,
guest_class: 6,
host_score: 84,
guest_score: 57,
tournament_id: 0,
group_id: 1,
statistics: '',
incidents: '',
id_class: 1},
RowDataPacket {
id_game: 2,
date: 2017-11-30T23:00:00.000Z,
host_class: 1,
guest_class: 6,
host_score: 84,
guest_score: 57,
tournament_id: 0,
group_id: 1,
statistics: '',
incidents: '',
id_class: 6} ]
は、左結合を使用する理由クラスにマッチのないgame.classがありますか? –
なぜ、 'class_id'しか持っていないのなら、クラスに参加するのですか?あなたはすでにゲームでそれを持っています。 –
私はゲームのクラスのIDを持っていますが、クラスの名前やその他の情報はありません。わかりやすく私はその情報をRESULTに入れませんでした – Pfeiff86