|
|
|
| Здравствуйте.
Подскажите как сделать два запроса в один, вот они:
Подсчитать общее кол-во столбца size
SELECT SUM(size) AS `sum` FROM num WHERE id = '1' "
|
и "взять" все из таблицы
SELECT * FROM num WHERE id= '1' "
|
Спасибо | |
|
|
|
|
|
|
|
для: Dez
(16.01.2007 в 19:30)
| | я делаю так:
SELECT SUM(num.size) AS `sum`, num.* FROM num WHERE id = '1' "
|
А мне выводит ошибку:
Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause | |
|
|
|
|
|
|
|
для: Dez
(16.01.2007 в 20:52)
| | num.* тут уже использовать не получится, так как SUM() является агрегатной функцией. | |
|
|
|
|
|
|
|
для: cheops
(16.01.2007 в 22:03)
| | А как тогда сделать? В два запроса? или все же в один можно? | |
|
|
|
|
|
|
|
для: Dez
(16.01.2007 в 22:04)
| | Если вы SUM() используете - т.е. по сути получаете одно значение, то использовать в списке столбцов можно только те значения, которые тоже уникальны в рамках всех столбцов. Иначе следует использовать либо два запроса, либо вложенные запросы. Вы чего добиться хотите? | |
|
|
|
|
|
|
|
для: cheops
(16.01.2007 в 22:09)
| | А как сделать с вложенными запросами?
Почитал я темку http://softtime.ru/forum/read.php?id_forum=3&id_theme=22860&page=1
Но мало чего понял :)
А вообще мне нужно что бы посчиталось общее число столбца size и что бы можно было вытащить другие данные из этой же таблицы | |
|
|
|
|
|
|
|
для: Dez
(16.01.2007 в 22:33)
| | На PHP будет выглядеть примерно так:
$query="SELECT size, другое_поле1, другое_поле2 FROM num WHERE id = '1' ";
$res=mysql_query($query);
$sum=0;
while($row=mysql_fetch_array($res)){
$sum=$sum+intval($row[0]);
}
echo $sum;
|
| |
|
|
|