【问题标题】:How to name two columns in join tables with two same foreign key at one table in SQL?如何在 SQL 中的一个表中使用两个相同的外键命名连接表中的两列?
【发布时间】:2020-06-28 07:05:17
【问题描述】:

我在 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'中'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'}
]

【问题讨论】:

    标签: mysql sql join


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 2019-12-23
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 2020-05-13
      • 1970-01-01
      相关资源
      最近更新 更多