MySql SELECT получить 1 запись из нескольких записей

У меня есть таблица, которая выглядит примерно так:

имя имя кол-во цена

1 книга1 2 $ 10 0

2 book2 1 $ 5 0

3 book1 3 $ 15 1

4 book3 2 $ 10 0

5 book4 3 $ 15 0

6 book2 3 $ 15 1

7 book2 4 $ 20 2

и данные, которые будут отображаться в Интернете,

Без названия Кол-во Цена

1 книга1 3 $ 15 1

2 book2 4 $ 20 2

3 book3 2 $ 10 0

4 book4 3 $ 15 0

Это запрос, который я использую

<?php
$sql = mysql_query("SELECT SUM(qty*price) FROM data_ph_user ORDER BY id");
while($res = mysql_fetch_array($sql)){
?>
<!-- display result -->
<?php
$resf1 = $res['SUM(qty*price)']; if($resf1 == 0){ echo '0'; }else{ echo $resf1; }
?>
<!-- end display -->
<?php } ?>

итак, как теперь получить данные?

Я сделал различные виды запросов, используя «ГДЕ», но не получил результатов

0

Решение

Я понял вашу точку зрения … так что вы просто хотите выбрать строку, где кол-во является максимальным для названия книги … правильно ??

попробуйте запрос ниже

select
name, qty, price, rev
from
MyTestingTable
where
qty = (select max(qty) from MyTestingTable i where i.Name = MyTestingTable.Name)
order by MyTestingTable.name

Вы можете посмотреть на данный SQL скрипка а также .. это даст вам желаемый результат ..

http://sqlfiddle.com/#!2/9162c4/8
введите описание изображения здесь

2

Другие решения

Причина в том, что SUM является агрегатная функция. Такие функции обычно возвращают одну строку: в этом случае вы бы суммировали по всей таблице если Вы группируете по чему-то.

Если я правильно понимаю ваш вопрос, вы хотите перечислить наивысшую версию всех элементов?

SELECT *, MAX(rev) FROM data_ph_user GROUP BY `name`

Тогда это только вопрос набрав его правильно.

0

По вопросам рекламы [email protected]