繁体   English   中英

INNER JOIN - select 的结果超过一行错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM