Выборка Left join из 3-х таблиц

com100

Новичок
Выборка Left join из 3-х таблиц

Здравствуйте.
помогите составить запрос.

1) Есть таблица Дата (Date)
Date
2005-01-01
2005-01-02
2005-01-03
2005-01-04
2005-01-05
2005-01-06
2005-01-07
......

2) Есть таблица Заказы (zakaz)

__id__|__date___|__zakaz_|Manager|
__1__|2005-01-01|_заказ1_|Petrov
__2__|2005-01-01|_заказ2_|Ivanov
__3__|2005-01-03|_заказ3_|Sidorov
__4__|2005-01-05|_заказ4_|Sidorov
__5__|2005-01-06|_заказ5_|Ivanov
__6__|2005-01-06|_заказ6_|Petrov

3) Есть таблица даты отгрузки вышеописанных заказов

__id__|_id_zakaz_|__otgruzka___|
__1__|___2______|_2005-01-05_
__2__|___4______|_2005-01-10_
__3__|___6______|_2005-01-07_

Стоит задача: вывести таблицу, где будут отображены числа (таблица Date), и заказы, но необходимо показать не только заказы на какой они день, но и напротив дня отгрузки вывести данные об отгружаемом заказе
Т.е.



2005-01-01 - заказ1 - Petrov
2005-01-01 - заказ2 - Ivanov
2005-01-02
2005-01-03 - заказ3 - Sidorov
2005-01-04
2005-01-05 - заказ4 - Sidorov
2005-01-05 - заказ2 - Ivanov (отгрузка)
2005-01-06 - заказ5 - Ivanov
2005-01-06 - заказ6 - Petrov
2005-01-07 - заказ6-Petrov (отгрузка)
2005-01-08
2005-01-09
2005-01-10 - заказ4-Sidorov (отгрузка)


Моих знаний хватает, что бы сделать выборку LEFT JOIN из таблицы заказов,но я не могу показать заказы в день отгрузки. (строки, что я выделил жирным)

Помогите пожалуйста....
 

com100

Новичок
Таблица нужна как промежуточная таблица. В ней храниться даты (названия дней) за целый год. Сделана для возможности сделать выборки вида

2005-01-01 - заказ1 - Petrov
2005-01-01 - заказ2 - Ivanov
2005-01-02
2005-01-03 - заказ3 - Sidorov
2005-01-04
2005-01-05 - заказ4 - Sidorov

Т.е. показывающие дни, в которых нет заказов. =)

-~{}~ 13.06.05 11:26:

Сделал с помощью временной таблицы.

create temporary table tmp type=heap (SELECT date.date, zakaz.zakaz,zakaz.manag
FROM date
LEFT JOIN zakaz ON date.date=zakaz.date where zakaz.zakaz is not null)
UNION
(SELECT date.date, zakaz.zakaz, zakaz.manag
FROM date
LEFT JOIN otgruzka ON otgruzka.otgruzka = date.date
inner JOIN zakaz ON zakaz.id = otgruzka.id_zakaz)
order by date;
select date.date,zakaz from
date
left join tmp on tmp.date=date.date
order by date;
 
Сверху