如何解决使用临时列进行左连接
我想对两个表执行 left join
但第二个表没有必需的列。
因此需要一个临时列(第二个表中的两个列值的连接)来进行左连接。
select a.name,a.number,b.id,b.sub_num
from tableA a left join
tableB b
on a.number = (select concat(id,'-',Cast(sub_num as varchar)) as tempcol from tableB);
SUBQUERY_MULTIPLE_ROWS: Scalar sub-query has returned multiple rows.
但我不需要这个 tempcol 显示在主查询中,也不需要在此处的任何表中将其保存为新列。
在临时列上进行左连接的更好方法是什么?
解决方法
您不需要 join
的子查询。只需使用表达式:
select a.name,a.number,b.id,b.sub_num
from tableA a left join
tableB b
on a.number = concat(id,'-',sub_num);
如果您愿意,可以使用子查询:
select . . .
from tableA a left join
(select b.*,concat(id,sub_num) as tempcol
from tableB b
) b
on a.number = b.tempcol;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。