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

问题描述 投票:0回答:1

这可能是个很不专业的问题,但通过Google搜索,我认为我必须使用内部连接,但不能让它工作。

我想运行一条SQL命令,从表A中获取数据,如果它存在于表B中,并且所有预期的列都是匹配的,但是我在AS400上得到了 "Result of select more then one row "的错误,当然,因为我需要所有的数据。

我到底做错了什么?目标是使用表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也有很多行。

谢谢你

sql db2 ibm-midrange
1个回答
2
投票

你的错误与该查询没有意义。 然而,如果你只是想从一个表中获取列,可以使用 "内联 "命令。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 往往具有更好的性能。

© www.soinside.com 2019 - 2024. All rights reserved.