我有一个包含两列的表格: player1_id和player2_id - 它们与用户表(主键)中的id链接
我正在尝试使用下面的查询使用他们的ID来选择用户名,但它给了我两行而不是一行
SELECT users.name, tournaments_results.* FROM tournaments_results JOIN users ON tournaments_results.p1_id = users.id
UNION
SELECT users.name, tournaments_results.* FROM tournaments_results JOIN users ON tournaments_results.p2_id = users.id
如何在结果的一行中将users.name选为name_player_1和name_player_2这两个不同的列?
答案 0 :(得分:2)
您使用两个联接:
SELECT tournaments_results.*, u1.name, u2.name
FROM tournaments_results tr LEFT JOIN
users u1
ON tr.p1_id = u1.id LEFT JOIN
users u2
ON tr.p2_id = u2.id;
如果其中一列不匹配,则使用LEFT JOIN
。