[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: DISTINCT left + INNER JOIN
kuzroman
Необходимо объеденить 2 таблицы по полю date, для вывода архива по дате.

Итак что имеем...

SELECT DISTINCT left(date,7) AS month FROM otchet ORDER BY month DESC


Здесь выводим архив в формате год-месяц.

есть еще таблица otchet2 в которой есть то же поле date.

Подскажите как правильно вывести дату из 2х таблиц?








Спустя 5 часов, 18 минут, 9 секунд (31.05.2010 - 14:58) SlavaFr написал(а):
UNION ? smile.gif

Попробуй также вместо 'left' dateformat,
а вместо 'ORDER BY monat'
order by YEAR(`date`) DESC , MONTH(`date`) DESC



Спустя 50 минут, 43 секунды (31.05.2010 - 15:49) kuzroman написал(а):
Спасибо. Теперь еще и про UNION узнал.
Сделал так.

(SELECT DISTINCT left(date,7) AS month FROM otchet ORDER BY month DESC)
UNION
(SELECT DISTINCT left(date,7) AS month FROM otchet2 ORDER BY month DESC)


Все супер. Одна беда. Выводит не по порядку месяц.

Спустя 7 минут, 13 секунд (31.05.2010 - 15:56) Guest написал(а):
Цитата (kuzroman @ 31.05.2010 - 12:49)
Все супер. Одна беда. Выводит не по порядку месяц.

Какой тип у `date`?
DATETIME или TIMESTAMP ?


Спустя 21 минута, 42 секунды (31.05.2010 - 16:18) kuzroman написал(а):
Просто DATE.

Спустя 23 минуты, 4 секунды (31.05.2010 - 16:41) SlavaFr написал(а):
тогда незнаю, почему у тебя сортировка не работает.
к стате date это зарезервированное слово, так что ты если Столб так назвать решил smile.gif , то ты его по крайней мере в кавычкак `` употребляй `date` .

Спустя 8 минут, 8 секунд (31.05.2010 - 16:49) kuzroman написал(а):
Дело в том, что если пишу только

SELECT DISTINCT left(date,7) AS month FROM otchet ORDER BY month DESC


то сортировка отлично работает.

А если с UNION то в разнобой)

Ну ладно... Будем искать...


Спустя 20 минут, 26 секунд (31.05.2010 - 17:09) SlavaFr написал(а):
теперь до меня дошло smile.gif
попробуй так


SELECT DISTINCT DATE_FORMAT( tmp.`date`,'%Y-%m')
FROM
( SELECT `date` FROM otchet )
UNION
SELECT
`date`FROM otchet2
) AS tmp
order by YEAR(tmp.`date`) DESC , MONTH(tmp.`date`) DESC


(возможны ошибки,так как я Query не пробовал)

Спустя 15 часов, 19 минут, 48 секунд (1.06.2010 - 08:29) kuzroman написал(а):
Мда, mysql_query выдает ошибку:

Цитата
Every derived table must have its own alias


Что нибудь придумаем)

Спустя 16 минут, 41 секунда (1.06.2010 - 08:46) kuzroman написал(а):
Ок Все получилось сделал так:

   (SELECT DISTINCT left(date,7) AS month FROM otchet )
UNION
(SELECT DISTINCT left(date,7) AS month FROM otchet2 )
ORDER BY month


SlavaFr - Спасибо за идеи !))


_____________
kuzroman@list.ru
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.