提问者:小点点

如何在SQL中用两个相同的外键命名连接表中的两列?


我在MySQL数据库中有两个表:

姓名

[
  {id: 1, name: 'John'},
  {id: 2, name: 'Mike'},
  {id: 3, name: 'Fred'}
]

name_changes

[
  {id: 1, old_name_id: 1, new_name_id: 2},
  {id: 1, old_name_id: 3, new_name_id: 1}
]

(names是表'names'中'id'的外键)

请帮我建立查询,以连接这些表并得到结果:

[
  {id: 1, old_name_id: 1, new_name_id: 2, old_name: 'John', new_name: 'Mike'},
  {id: 1, old_name_id: 3, new_name_id: 1, old_name: 'Fred', new_name: 'John'}
]

共1个答案

匿名用户

您可以使用表名two table和使用一个正确的表名别名

select  a.id id, a.old_name_id, a.new_name_id, b.name old_name, c.name new_name
from name_changes a
inner join  names b on b.id = a.old_name_id
inner join names c on c.id = a.new_name_id