2013-06-27 2 views
-1

Как я могу выбрать столбец1 (тип) и столбец2 (цена), но только один столбец1 (тип)?Как выбрать столбец1 и столбец2, но только один столбец1

<?php 
$query ="SELECT type , price FROM products ORDER BY type , price"; 
?> 
+0

Было бы полезно, если бы вы предоставили небольшое количество выборочных данных вместе с желаемым результатом. –

ответ

0

вы можете использовать GROUP BY

SELECT type , price FROM products GROUP BY type ORDER BY type , price 
            ^^^^^^^^^^^^----this will select distinct type 

some docs about group by

2

Использование GROUP BY.

SELECT type, price 
FROM products 
GROUP BY type 
ORDER BY type 

Это не строго правовой SQL, поскольку GROUP BY обычно требует, чтобы все не сгруппированные столбцы будут функции агрегирования, но MySQL позволяет это как расширение. Он выберет произвольное price из всех строк с тем же type.

Нет смысла ставить price в статью ORDER BY. Второй столбец упорядочения используется только тогда, когда есть строки с одним и тем же первым столбцом, но так как мы делаем type различимыми, которые никогда не могут произойти.

0

Вам понадобится GROUP BY column1 вместо использования DISTINCT. Вам также нужно будет использовать агрегатную функцию по цене.

Список агрегатов для MySql здесь: GROUP BY (Aggregate) Functions

например Для того, чтобы получить все различные типы со средним использованием цен:

SELECT type, AVG(price) FROM products GROUP BY type ORDER BY type 

Если не нужно агрегировать цену каким-то образом, то вы, вероятно, лучше оставить его, так как даже если MySql будет возвращать что-то это ISN В любом случае, это будет предсказуемое значение.