powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Организация календаря
4 сообщений из 4, страница 1 из 1
Организация календаря
    #32398901
GreenMS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть задача организовать календарь. В каждом месяце на соответсвующее число проставляется ссылка (скажем на 1 января 2004 годя /arch/01-01-2004) если в этот день было какое-то событие на сайте (добавлена новость, добавлена статья или новая ветка в форуме и пр). Нужно определить было ли в определенный день хоть какое-то событие с помощью выборки из нескольких таблиц. В настоящий момент реализованно только для одной таблицы с новостями:
сейчас сделано с одной таблицей (пример для всего января):
SELECT count(id1) as cnt, date1 from news WHERE date1>'2004-1-1' AND date1<DATE_ADD('2004-1-1', INTERVAL 1 MONTH) GROUP BY date1 ORDER BY date1

каким образом сделать аналогичную выборку для нескольких таблиц (MySQL 4.0.x), если во всех таблицах есть как минимум два поля одинакового типа (идентификатор и дата)?
...
Рейтинг: 0 / 0
Организация календаря
    #32399384
Фотография upper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может быть это http://php.kz/sql/mg08.htm
...
Рейтинг: 0 / 0
Организация календаря
    #32399787
GreenMS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это совершенно не подходит :-(

Все осложнено тем, что в MySQL не может делать подзапросы в from, а то можно было бы сделать так:

SELECT count(*) AS cnt, dat FROM (
SELECT id1 AS cnt, date1 AS dat FROM t1 WHERE date1 BETWEEN _from_ AND _to_
UNION
SELECT id2 AS cnt, date2 AS dat FROM t2 WHERE date2 BETWEEN _from_ AND _to_
UNION
SELECT id3 AS cnt, date3 AS dat FROM t3 WHERE date3 BETWEEN _from_ AND _to_
) AS ttt GROUP BY dat;
...
Рейтинг: 0 / 0
Организация календаря
    #32399956
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй так:
Код: plaintext
1.
2.
3.
4.
5.
SELECT DISTINCT DATE_FROMAT(date1, '%d') FROM news date1>'2004-1-1' AND date1<DATE_ADD('2004-1-1', INTERVAL  1  MONTH)
UNION 
SELECT DISTINCT DATE_FROMAT(date1, '%d') FROM forum date1>'2004-1-1' AND date1<DATE_ADD('2004-1-1', INTERVAL  1  MONTH)
UNION 
SELECT DISTINCT DATE_FROMAT(date1, '%d') FROM articles date1>'2004-1-1' AND date1<DATE_ADD('2004-1-1', INTERVAL  1  MONTH)

по идее запрос должен возвращать список чисел месяца, в котором произошло какое-то событие
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Организация календаря
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]