表和视图之间的内部联接给出了两者的笛卡尔积

时间:2019-07-10 09:44:42

标签: sql view db2 inner-join

当我将一个带有视图的表INNER JOIN时,它给了我表和视图的笛卡尔积

我正在使用DB2数据库。我在表和视图之间使用了INNER JOIN,基于表和视图中都存在的列将它们连接起来

select * FROM  MYSCHEMA.TABLE_A a INNER JOIN MYSCHEMA.MY_VIEW_A va on a.PRICE_ID=va.PRICE_ID 

我的表总共有200条记录,而View返回300条记录。 TABLE_A中的所有PRICE_ID与View中的PRICE_ID列匹配。我没有返回300个结果集,而是在加入它们时获得了60000条记录。

2 个答案:

答案 0 :(得分:1)

在两个表中,您似乎拥有相同的@Target(AnnotationTarget.ANNOTATION_CLASS)值。

这很容易检查重复项:

PRICE_ID

重复项说明了为什么会有这么多行。

答案 1 :(得分:0)

select a.*
FROM MYSCHEMA.TABLE_A a
         INNER JOIN (select distinct PRICE_ID
                         MYSCHEMA.MY_VIEW_A) tmp on tmp.PRICE_ID = a.PRICE_ID