[英]INNER JOIN - Result of select more then one row error
这可能是一个愚蠢的问题,但通过谷歌搜索,我认为我必须使用内部连接,但无法让它工作:
我想运行 SQL 命令从表 A 中获取数据(如果表 B 中存在并且所有预期的列都匹配),但是我在 AS400 上收到“select 的结果超过一行”错误,因为我需要它全部。
我究竟做错了什么? 目标是在从表 A 中选择时使用表 B 作为 WHERE 条件。
SELECT column1, column2, column3, column4, column5
from TableA INNER JOIN
TableB
ON TableA.column1 = TableB.column1 and
TableA.column2 = TableB.column2 and
TableA.column3 = TableB.column3
TableA 和 TableB 也有很多行。
谢谢!
您的错误对该查询没有意义。 但是,如果您只想要一个表中的列,请使用exists
:
select a.*
from TableA a
where exists (select 1
from TableB b
where a.column1 = b.column1 and
a.column2 = b.column2 and
a.column3 = b.column3
);
这可以防止JOIN
引入重复项——并且通常具有更好的性能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.