PHP / MySql:选择DISTINCT某些列不允许访问其他列

时间:2017-11-29 16:58:30

标签: php mysql sql

说我有以下数据库:

id name value other
1 Dave 340 otherinfo
2 Dave 340 otherinfo
3 Mike 350 otherinfo

我只想要具有唯一名称AND值的行,所以我使用这个sql语句:

SELECT DISTINCT 'name', 'value' from TABLE

不,我得到了我想要的行(1和3),但我无法访问其他列。 所以$ row [name]和$ row [value]给我我选择的信息,但是例如$ row [other]给出NULL。如何选择这些列呢?

1 个答案:

答案 0 :(得分:0)

您可以使用派生表

DECLARE @thetable TABLE (id int, [name] varchar(100), [values] int, other varchar(100))
INSERT INTO @thetable VALUES (1, 'Dave', 340, 'otherinfo'), (2, 'Dave', 340, 'otherinfo'), (3, 'Mike', 350, 'otherinfo')

SELECT TT.*
  FROM (
        SELECT MIN(id) [minID] --take the minID by name, values
             , [name], [values]
          FROM @thetable
        GROUP BY [name], [values]
       ) AS dT INNER JOIN @thetable TT ON dT.minID = TT.id 
               --rejoin the derived output by minID = @thetable.id

产地:

id  name    values  other
1   Dave    340     otherinfo
3   Mike    350     otherinfo