Помогите с запросом?

REMO

Guest
Помогите с запросом?

Есть две таблицы.

Первая - данные за сегодня. Вторая история данных за этот месяц по дням (сегодняшний день не включается).

Структура обоих таблиц: id | prosmotrov

Необходимо выдать первую десятку id с максимальным количеством просмотров за месяц, включая сегодняшний день.

За месяц: SELECT id, SUM(prosmotrov) AS prosmotrov FROM days GROUP BY id ORDER BY prosmotrov DESC LIMIT 10

А как к этому приделать сегодняшний день?
 

-=KPOT=-

Новичок
ну сделай второй запрос по первой таблице
а во первом запросе LIMIT 9
 

ecto

Новичок
(SELECT a FROM table_name1 WHERE ... ORDER BY a LIMIT 10)
UNION
(SELECT a FROM table_name2 WHERE ... ORDER BY a LIMIT 10)
ORDER BY a;

но в рнр надо вытащить только первые 10 строк
limit 5 делать нелья (если все топы сосредоточены в одной таблице - все не вытащася)
 

fixxxer

К.О.
Партнер клуба
ecto
Когда пишешь MySQL 4 - specific запросы, надо об этом упоминать. :)
Кстати, два запроса практически ничем не хуже. Union это по сути два запроса.
 

REMO

Guest
Как я сделаю второй запрос? Ведь мне надо чтобы id и первого и второго запроса выстроились в одинаковом порядке по общей сумме из этих двух таблиц.

Т.е. я сделал запрос к первой таблице (с историей) id выстроились каким то образом, но если я возьму данные за сегодняшний день из второй таблицы, они могут поменять порядок id получившийся в предыдущем запросе. Задача как раз в том, как их взять вместе и потом уже отсортировать по убыванию.
 

fixxxer

К.О.
Партнер клуба
create temporary table ( такая же структура ) type=hash;
blablabla
 

chira

Новичок
для двух таблиц:
Код:
SELECT dd.id, SUM(dd.prosmotrov)+MAX(d.prosmotrov) AS prosmotrov FROM days dd, current_day d
WHERE dd.id=d.id
GROUP BY dd.id
ORDER BY prosmotrov DESC LIMIT 10
 
Сверху