MysQL で特定の結果セットを取得しようとしていますが、何を調査すればよいかわかりません。
私は「人」テーブルを持っています:
uid(PK)、ファーストネーム、ラストネーム。
次に、次の「一致」テーブルがあります。
matchid、uid1(fk)、score1、uid2(fk)、score2
クエリの結果セットを次のように表示したいと思います。
matchid、uid1 の最初の名前、score1、uid2 の最初の名前、score2。
私の初心者のスキルはそれを得ることができないようです.私の問題は、2番目のuidにあり、その人の名をidの代わりに結果セットの列として表示することです.
名前とmatchidのテストとして、私は試しました:
Select * From
( Select matches.idmatches, people.FirstName,
From people, matches
Where matches.uid1 = people.uid ) as a
JOIN
(Select matches.idmatches, people.FirstName,
From people, matches
Where matches.uid2 = people.uid ) as b
しかし、各名前を複数回返します(6つのエントリがあり、36の結果が返されました...可能な組み合わせごとに実行されたようです)、matchidが一致しません:
uid1 matchid uid2 matchid
Michael 13 Jennii 13
Michael 14 Jennii 13
Michael 15 Jennii 13
Michael 16 Jennii 13
Michael 17 Jennii 13
Michael 18 Jennii 13
Michael 13 Jennii 14
Michael 14 Jennii 14
Michael 15 Jennii 14
Michael 16 Jennii 14
Michael 17 Jennii 14
Michael 18 Jennii 14
Michael 13 Jennii 15
...and so on...... you get the point...
私が欲しいのは:
uid1 matchid uid2 matchid
Michael 13 Jennii 13
Michael 14 Jennii 14
.......and so on..... with no duplicates.
すべてが理にかなっていることを願っています。まず、テーブルを正しく作成したかどうか、結合を使用することが正しい方法であるかどうか、そしてそうであれば..この出力を取得する方法がよくわかりません。何が間違っているのですか. ありがとうございます。