SQL

时间:2015-11-30 15:07:42

标签: mysql sql group-by distinct

我有两张桌子:

  Table1   name   object        Table2  name_old   name_corr 
           ------|-----|                ---------|-----------
           John  | A   |                 John    | John
           Ben   | B   |                 Ben     | Ben
           Jon   | B   |                 Jon     | John
           Be n  | B   |                 Be n    | Ben
           Peter | B   |                 Peter   | Peter
           Petera| C   |                 Petera  | Peter

在我的示例中,我有三个人,在表1中有一些输入错误,因此Table2将每个名称分配给正确的名称。

现在我想要每个人(约翰,本,彼得)他们不同的对象。

这将是结果:

John  A
      B
Ben   B
Peter B
      C

这是我的尝试,但我收到错误:

Select b.name_corr, distinct(a.object) from Table1 as a join Table2 as b on (a.name=b.name_old) group by b.name_corr

没有分组,这意味着如果我通过'where'选择一个特定的名称,我的查询就可以了。

3 个答案:

答案 0 :(得分:0)

distinct不是一个功能。这是select上的限定符:

Select distinct b.name_corr, a.object
from Table1 a join
     Table2 b
     on a.name = b.name_old;

答案 1 :(得分:0)

使用group_concat

Select b.name_corr, group_concat(distinct a.object) from Table1 as a join Table2 as b on (a.name=b.name_old) group by b.name_corr;

答案 2 :(得分:0)

我找到了解决问题的方法。 - >双重'分组'。很简单.. 无论如何,谢谢你的帮助。

相关问题