MySQL SELECT DISTINCT如何连接一些相应的列来查询结果

时间:2017-10-18 14:19:33

标签: mysql select distinct

我有一张表

<Service Name="Commander">
  <StatelessService ServiceTypeName="CommanderType" InstanceCount="[MyService_InstanceCount]">
    <SingletonPartition />
  </StatelessService>
</Service>

MySQL SELECT DISTINCT确切地告诉我我需要的内容,此查询必须完全按照原样

id,column1, column2, column3,column4,column5

但作为输出,我在上面的DISTINCT查询中只有2列

SELECT DISTINCT column1,column3 from tablename

问题 - 如何从同一个表中加入此结果的其他相应列?

例如

column1,column3

在Google上花了几个小时,两个“最近”的想法就像是

column1,column3,id,column5

但是这样的查询无论如何都会让我回归

SELECT DISTINCT column1,column3 
from tablename AS tbl1 
INNER JOIN (SELECT id,column5 from tablename) AS tbl2

我的预期结果应该是 column1,column3 - 这样我就可以将此结果保存到包含4列的新表中。 但是我上面讲的只有两列。

添加了示例 http://sqlfiddle.com/#!9/1e4472/1

请注意 - 查询结果不显示ID 4,因为此ID在BOTH字段中有重复 - 公司和城市。所以这正是我的需要。

那么,如何在结果中显示不仅是公司和城市,还有例如ID和MANAGER?

2 个答案:

答案 0 :(得分:2)

如果要复制,如果要显示具有相同公司值的第一个(原始)记录。城市(即在这里你要显示id = 1而不是id = 4)然后跟随查询应该工作:

.input-container:focus:after

Click here for Demo

希望它有所帮助!

答案 1 :(得分:0)

简单地说:

SELECT DISTINCT Column1,Column3,id,column5

或者,如果这些列的值超过1个:

 SELECT Column1,Column3,MAX(id),MAX(column5)
 GROUP BY Column1,Column3

但这实际上取决于要求,你不是很清楚。