【发布时间】:2017-10-18 14:19:32
【问题描述】:
我有一张桌子
id,column1, column2, column3,column4,column5
MySQL SELECT DISTINCT 准确返回我需要的内容,并且此查询必须保持原样
SELECT DISTINCT column1,column3 from tablename
但作为输出,我只有上面 DISTINCT 查询中要求的 2 列
column1,column3
问题 - 如何将同一表中的其他相应列加入到此结果中?
例如
column1,column3,id,column5
在谷歌呆了几个小时,两个“最近”的想法有点像
SELECT DISTINCT column1,column3
from tablename AS tbl1
INNER JOIN (SELECT id,column5 from tablename) AS tbl2
但是这样的查询无论如何只会返回我
column1,column3
我的预期结果应该是
column1,column3 (exactly as a result of SELECT DISTINCT) + two other columns id,column3 - 这样我就可以将此结果保存到一个有 4 列的新表中。
但正如我上面所说的,我只有两列。
添加了示例 http://sqlfiddle.com/#!9/1e4472/1
请注意 - 查询结果不显示 ID 4,因为此 ID 在两个字段(公司和城市)中都有重复。所以这正是我所需要的。
那么,如何在结果中不仅显示 COMPANY 和 CITY,还显示 ID 和 MANAGER 等?
【问题讨论】:
-
一些样本数据和预期结果会让你的问题更清楚。
-
如果您想在结果集中添加一个额外的列(即第 5 列),那么您必须在查询中选择该列。如果不修改现有查询,就无法做到这一点。
-
为什么我说预期结果和数据样本 - 我的意思是您实际拥有的数据(值)的示例,以及您希望它在最后的样子。不言而喻!但表格格式。
-
先生们,你们都说得对,让我在sqlfiddle准备一个例子,大约30分钟后返回。
-
看看@Harshil 的回答。 distinct 不使用任何特定的。您需要在 ID 上使用 min 或 max。