如何将Table2的列d关联至Table1?JOIN语句失效问题咨询
解决Table1关联Table2添加d列的问题
你的需求是将Table2的列d,按照列a的对应关系匹配到Table1中,最终得到包含a、b、c、d的结果集。其中Table1包含列a、b、c,Table2包含列a、d,但你尝试的JOIN语句未成功,之前的尝试语句如下:
select t1.a,t2.b,t2.c from table1 t1 JOIN table2 t2 on t1.a=t2.a
select t1.a,t2.b,t2.c from table1 t1 RIGHT JOIN table2 t2 on t1.a=t2.a
问题分析
你写的SQL存在两个明显错误:
- 没有选择Table2中的
d列,这是你需要添加的目标列; - 错误地从
t2(即Table2)中选取b、c列,但这两列仅存在于Table1(t1)中。
正确实现语句
根据需求选择对应的JOIN类型:
- 保留Table1所有行(即使Table2中无对应a值的记录,d列显示NULL),使用LEFT JOIN:
select t1.a, t1.b, t1.c, t2.d from table1 t1 left join table2 t2 on t1.a = t2.a;
- 仅保留Table1和Table2中a值均存在的行,使用INNER JOIN(与JOIN等价):
select t1.a, t1.b, t1.c, t2.d from table1 t1 inner join table2 t2 on t1.a = t2.a;
内容的提问来源于stack exchange,提问作者vid
相关产品推荐
相关产品推荐

