我的数据库中有两个表,其中第一个表具有第二个表的相关值。就像这样:
表“人”
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 值替换。
我该如何解决这个问题?
非常感谢!
最佳答案
如果您正在学习 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
)以区别于人名。
关于mysql - 使用左连接并保留左表 ID 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48894984/