[英]SQL: how to join tables with same meaning but different column name?
Say I have table student, and table advisor.假设我有表学生和表顾问。 student contains ID and name:
学生包含 ID 和姓名:
+----+------+
| ID | name |
+----+------+
advisor contains s_id and i_id: Advisor 包含 s_id 和 i_id:
+------+------+
| s_id | i_id |
+------+------+
how to join with result like this:如何加入这样的结果:
+----+------+------+
| ID | name | i_id |
+----+------+------+
I've tried我试过了
select *
from student join advisor on student.ID=advisor.s_id
But it returns但它返回
+----+------+------+------+
| ID | name | i_id | s_id |
+----+------+------+------+
Thanks!谢谢!
Modify your existing query by including in the select list only the columns you actually want to see:通过在选择列表中仅包含您实际想要查看的列来修改现有查询:
SELECT s.ID, s.name, a.i_id
FROM student s
INNER JOIN advisor a
on s.ID = a.s_id;
In case a given student might actually have no advisors, you could use a left join here to report NA
for that student:如果给定的学生实际上可能没有顾问,您可以在此处使用左连接来报告该学生的
NA
:
SELECT s.ID, s.name, COALESCE(a.i_id, 'NA') AS i_id
FROM student s
LEFT JOIN advisor a
on s.ID = a.s_id;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.