SQL连接:在连接两个表时避免重复条目?

时间:2010-12-19 02:20:49

标签: sql database mysql

我有两个表,A和B,我试图根据连接查询从A中选择行。 我从这些表中获取了一些记录,但是有一些重复的条目。我应该如何过滤此查询以避免重复行?现在,我通过Java代码将它们放入HashSet中来实现。

2 个答案:

答案 0 :(得分:8)

关键字DISTINCT用于消除查询结果中的重复行:

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

但是,如果表格组织正确并且您正确加入,有时候(可能甚至“经常”,但并非总是)可以避免使用它。

要获得更多信息,您将不得不通过具体的例子更清楚地提出您的问题。

答案 1 :(得分: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