Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> два запроса в одном 
:(
    Опции темы
Gold Dragon
Дата 16.10.2007, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 2
Всего: 71



есть таблица
Код

CREATE TABLE `counter` (
  `id` int(11) NOT NULL auto_increment,
  `ip` varchar(15) NOT NULL default 'unknown',
  `host` varchar(255) NOT NULL default 'unknown',
  `browser` varchar(255) NOT NULL default 'unknown',
  `dd` int(2) unsigned zerofill NOT NULL default '00',
  `mm` int(2) unsigned zerofill NOT NULL default '00',
  `gggg` int(4) unsigned zerofill NOT NULL default '0000',
  `data` date NOT NULL default '0000-00-00',
  `xxx` int(11) NOT NULL default '1',
  PRIMARY KEY  (`id`)
)

я делаю два запроса
Код

SELECT count(*) AS `q1`, SUM(`xxx`) AS q2 FROM `counter`

и
Код

SELECT count(*) AS `q3`, SUM(`xxx`) AS q4 FROM `counter` WHERE `data`='$data'

можно ли это сделать одним запросом?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
sTa1kEr
Дата 16.10.2007, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 7
Всего: 146



Код

SELECT count(c1.`id`) AS `q1`, SUM(c1.`xxx`) AS `q2`, count(c2.`id`) AS `q3`, SUM(c2.`xxx`) AS `q4`
FROM `counter` c1
   LEFT JOIN `counter` c2 ON c1.`id` = c2.`id` AND c2.`data`='$data'

Только зачем было сообщение как новость создавать?
PM MAIL   Вверх
Gold Dragon
Дата 16.10.2007, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 2
Всего: 71



Цитата(sTa1kEr @  16.10.2007,  12:39 Найти цитируемый пост)
Только зачем было сообщение как новость создавать?
ответ очень банальный.... нажал не туда smile



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
muzer
Дата 16.10.2007, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 387
Регистрация: 31.8.2006

Репутация: 30
Всего: 31



sTa1kEr, плохой вариант, два обращения в одну и ту же таблицу, join зачем-то. Уж через union тогда бы написали.

Код

SELECT COUNT(*) AS q1, SUM(xxx) as q2, SUM(`data`='$data') AS q3,SUM(IF(`data`='$data',xxx,0)) AS q4 FROM counter

PM WWW   Вверх
sTa1kEr
Дата 17.10.2007, 07:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: 7
Всего: 146



Цитата(muzer @  16.10.2007,  22:14 Найти цитируемый пост)
sTa1kEr, плохой вариант, два обращения в одну и ту же таблицу, join зачем-то. Уж через union тогда бы написали.

Да... что-то я перемудрил. Ваш запрос однозначно грамотнее. Через union не написал, т.к., судя по алиасам колонок, Gold Dragon требовалось одной строкой получить все значения.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0632 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.