2010-12-19 89 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