我目前正在处理两个需要某种联接的表。第一个表称为 profile
表,另一个称为 matches
表
配置文件表
+------------+------+--------+
| ID | Name | Bal |
+------------+------+--------+
|1 |Daniel| 2000 |
+------------+------+--------+
|2 |Frank | 2000 |
+------------+------+--------+
|3 |Sarah | 2001 |
+------------+------+--------+
匹配表
+------------+------+--------+
| ID | User_ID | Match_ID|
+------------+------+--------+
|1 | 1 | 2 |
+------------+------+--------+
|2 |1 | 3 |
+------------+------+--------+
|3 |3 | 1 |
+------------+------+--------+
上面是示例表,现在我该如何编写一个查询,将 User_ID 和 Match_ID 字段的两个名称都显示在一行中
查询后的预期结果
+------------+------+--------+
| ID | Name | Match Name|
+------------+------+--------+
|1 | Daniel | Frank |
+------------+------+--------+
|2 |Daniel | Sarah |
+------------+------+--------+
|3 |Sarah | Daniel |
+------------+------+--------+
最佳答案
您只需使用两个连接:
select m.*, pu.name, pm.name as match_name
from matching m left join
profiles pu
on m.user_id = pu.id left join
profiles pm
on m.match_id = pm.id;
请注意,这使用了 left join
。这可确保 matching
中的所有行都在结果集中,即使其中一列没有值。
关于mysql - 加入不同的表并用mysql在一行上显示匹配记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49752769/