2010-12-19 67 views
1

我有兩個表,A和B,我試圖從A基於聯接查詢選擇行。 我從這些表中獲取一些記錄,但有一些重複的條目。我應該如何過濾這個查詢以避免重複的行?現在,我通過將它們放入HashSet來通過Java代碼來完成它。SQL連接:加入兩個表時避免重複的條目?

+7

「我從這些表中獲取了一些記錄,但是有一些重複條目如何過濾這個查詢本身」幾乎不能很好地描述您的問題。 – 2010-12-19 02:21:58

+2

你能告訴我們你當前的查詢嗎? – drpcken 2010-12-19 02:22:02

+0

和你的表結構。 – 2010-12-19 02:23:23

回答

8

關鍵字DISTINCT用於從查詢結果中消除重複行:

SELECT DISTINCT ... 
    FROM A 
    JOIN B ON ... 

不過,有時你可以(甚至可能是「常」,但不總是)避免了需要它,如果表是正確組織並且您正確連接。

要獲得更多信息,您將不得不更清楚地問你的問題,並附上具體的例子。

+0

+1! – JohnB 2010-12-19 07:50:05

3

你必須解釋表結構,但我可以理解你的問題。您可以使用此查詢:

select a.atribute1, a.atribute2, b.atribut1, b.atribut2 
    from a inner join b 
    on a.primarykey = b.foreign_key 
where a.atribute = "" 
group by a.atribute2, b.atribute2 

您可以使用a.atribute = ""進行驗證。

如果您想在該屬性的一個組中使用group by a.atribute2, b.atribute2