mysql查询返回意外的行数

时间:2014-05-09 09:55:37

标签: mysql

我在这里试过在两列上应用连接。

SELECT 
abc.*
FROM  abc 
INNER JOIN  xyz
ON abc.column1 = xyz.column1
INNER JOIN  xyz AS xyz2
ON abc.column2 = xyz2.column2

此查询的结果包含81行,具有相同的数据,因为它必须返回唯一的一行。

我用DISTINCT尝试了这个,但它对我不起作用。

结果表(abc)包含列id,column1,column2,其中column1和column2中的数据可以重复。

但是,第1列和第2列的组合永远不会重复。

那么如何在结果中为两列添加DISTINCT。

任何人都可以帮助我,我如何限制获得具有相同数据的意外行数?

1 个答案:

答案 0 :(得分:0)

据推测,由于多次匹配,您的数据正在成倍增加。也许你的意思是:

select abc.*
from abc
where exists (select 1 from xyz where abc.column1 = xyz.column1) and
      exists (select 1 from xyz where abc.column2 = xyz.column2);