使用左连接并保留左表ID

时间:2018-02-20 22:03:19

标签: mysql sql

我的数据库中有两个表,其中第一个表具有第二个表的相关值。就像这样:

表“人”

ID |    NAME   | SCHOOL
-------------------------
1  | john      | 2
2  | fred      | 1
3  | maria     | 3
表“学校”

ID |   NAME  
-------------------------
1  | first school
2  | second school
3  | third school

确定。 我正在尝试在“人员”表中进行选择,并将“学校”号码替换为“学校”表格相关的ID。

所以我这样做了:

"SELECT * FROM people A LEFT JOIN school B ON A.school = B.id"

没关系!

但是如果我必须在此回报中获得“人”ID值,它将被“学校”表ID值替换。

我该如何解决这个问题?

非常感谢!

1 个答案:

答案 0 :(得分:0)

如果您正在学习SQL,请学习列出所需的所有列。明确地:

SELECT p.id, p.name, s.name as school_name
FROM 
     people p LEFT JOIN
     school s
     ON p.school = s.id;

注意:

  • 表别名是表名的缩写。这使得查询更容易理解。
  • 此处并不真正需要LEFT JOIN,但您正在使用它。
  • s.name可以别名(s.name as school_name),以区别于此人的名字。