INNER JOIN-选择多行错误的结果



这可能是一个很难回答的问题,但通过谷歌搜索,我认为我必须使用内部联接,但无法实现:

如果表A存在于表B中,并且所有期望的列都匹配,我想运行SQL命令从表A中获取数据,但我在AS400上收到了"选择多行的结果"错误,因为我需要所有这些。

我做错了什么?目标是使用表B作为WHERE条件,同时从表A中进行选择。

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

表A和表B也有许多行。

谢谢!

您的错误对该查询没有意义。但是,如果您只想要一个表中的列,请使用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引入重复项,并且通常具有更好的性能。

相关内容

  • 没有找到相关文章

最新更新