2014-05-09 149 views
-1

我已經嘗試在這裏申請加入兩列。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,列1,列2,其中列1和列2中的數據可以重複。

但是,列1與列2的組合不會重複。

那麼我怎麼能在結果中添加兩列的DISTINCT。

任何人都可以幫助我,我如何限制獲得意想不到的行數與相同的數據?

+0

也許選擇不同? – ggdx

+0

您不過濾數據。爲什麼它只是一排? –

+0

請看修改後的問題。 – user3305818

回答

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); 
+0

你的回答是正確的,但我無法從xyz表中選擇列。 – user3305818

+0

@ user3305818。 。 。你的問題沒有提到從'xyz'表中選擇任何列。它非常明確地說'select abc。*'。 –