2013-11-17 4 views
0

В этом solution пользователь запрашивает идентификатор, чтобы отображать другие столбцы в элементе select, но запрос различается только в одном столбце. Я попытался сделать это, но не могу получить синтаксис правильно. Вот запрос, но мне нужен только отдельный столбец DevelopmentDisplay.MySQL SELECT Distinct on single column not whole query

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

возможно дубликат [? SQL - Выберите отчетливый, но вернуть все столбцы] (http://stackoverflow.com/questions/6127338/sql-select-distinct-but- return-all-columns) –

+0

Я не хочу выбирать * хотя, есть более 75 столбцов, мне нужно только несколько столбцов. –

+0

Итак, вы указываете свои столбцы вместо использования '*' и по-прежнему используете 'GROUP BY' в конце вместо' DISTINCT' в своем выборе –

ответ

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);