Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在SQL中,如何在一个表中使用两个相同的外键命名联接表中的两列?_Mysql_Sql_Join - Fatal编程技术网

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

Mysql 在SQL中,如何在一个表中使用两个相同的外键命名联接表中的两列?,mysql,sql,join,Mysql,Sql,Join,MySQL数据库中有两个表: 名称 [ {id: 1, name: 'John'}, {id: 2, name: 'Mike'}, {id: 3, name: 'Fred'} ] [ {id: 1, old_name_id: 1, new_name_id: 2}, {id: 1, old_name_id: 3, new_name_id: 1} ] 名称\u更改 [ {id: 1, name: 'John'}, {id: 2, name: 'Mike'}, {i

MySQL数据库中有两个表:

名称

[
  {id: 1, name: 'John'},
  {id: 2, name: 'Mike'},
  {id: 3, name: 'Fred'}
]
[
  {id: 1, old_name_id: 1, new_name_id: 2},
  {id: 1, old_name_id: 3, new_name_id: 1}
]
名称\u更改

[
  {id: 1, name: 'John'},
  {id: 2, name: 'Mike'},
  {id: 3, name: 'Fred'}
]
[
  {id: 1, old_name_id: 1, new_name_id: 2},
  {id: 1, old_name_id: 3, new_name_id: 1}
]
(名称是表“名称”中“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'}
]

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

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