В MysQL я пытаюсь получить определенный набор результатов, но я не уверен, что делать.MySQL JOIN, UNION, оба или нет?
У меня есть таблица 'людей' с:
UID (PK), FirstName, LastName.
Я тогда сопоставляют таблицу с:
matchid, UID1 (Ф.К.), score1, UID2 (Ф.К.), score2
Я хотел бы, чтобы результирующий набор мой запрос, чтобы показать:
matchid, имя uid1, оценка1, первое имя uid2, score2.
Мои навыки начинающего, похоже, не могут получить его, моя проблема связана со вторым 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.
Надеюсь, что все имеет смысл, просто не уверен, прежде всего, если я правильно сделал таблицы, то если использование соединения является правильным методом, и если да .. Я действительно не понимаю, как я получаю этот вывод, что я делаю неправильно. Спасибо, кучи.
вы хотите использовать внутреннее соединение и группа – Drewdin