如何在sql的一个表中使用两个相同的外键命名联接表中的两列?

o75abkj4  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(391)

mysql数据库中有两个表:
姓名

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

名称\u更改

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

(名称是“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'}
]
xfb7svmp

xfb7svmp1#

可以两次使用表名,并使用正确的表名别名

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

相关问题