【问题标题】:MySQL SELECT Distinct on single column not entire queryMySQL SELECT Distinct 在单列而不是整个查询上
【发布时间】:2013-12-01 00:09:26
【问题描述】:

在此solution 上,用户正在查询 id 以显示选择中的其他列,但仅在单个列上查询不同的列。我试过这样做,但语法不正确。这是查询,但我只想在 DevelopmentDisplay 列上有所不同。

SELECT DISTINCT
`RESI`.`DevelopmentDisplay`,
`RESI`.`City`,
`RESI`.`ZipCode`
FROM
`RESI`
WHERE
`RESI`.`ZipCode` =  '91263'
ORDER BY
`RESI`.`DevelopmentDisplay` ASC

【问题讨论】:

  • 我不想选择 * 不过,有超过 75 列,我只需要几列。
  • 所以你指定你的列而不是使用*,并且在你的选择中仍然使用GROUP BY而不是DISTINCT
  • @RoccoTheTaco 为什么不用 (SELECT DISTINCT DevelopmentDisplay FROM RESI) T2 加入表格?
  • 不,没有这样的运气。我的查询返回 24 个结果,当我使用 Group BY 时返回超过 1000 个结果......它不一样。

标签: mysql


【解决方案1】:

是的,您可以自行加入表格。

我看到两个这样的选项。但是我建议你索引 DevelopmentDisplay 列。根据记录的数量,它可能会变得非常慢。

SELECT 
    t1.DevelopmentDisplay,
    t1.City,
    t1.ZipCode
FROM
    RESI t1,
    (SELECT DISTINCT DevelopmentDisplay FROM RESI) t2

WHERE
    t1.ZipCode =  '91263' AND
    t1.DevelopmentDisplay = t2.DevelopmentDisplay;

或者:

SELECT 
    t1.DevelopmentDisplay,
    t1.City,
    t1.ZipCode
FROM
    RESI t1,
WHERE
    t1.ZipCode =  '91263' AND
    t1.DevelopmentDisplay IN (SELECT DISTINCT DevelopmentDisplay FROM RESI);

【讨论】:

    猜你喜欢
    • 2021-07-06
    • 1970-01-01
    • 2014-05-01
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 2012-10-30
    相关资源
    最近更新 更多