|
|
|
Выборка Left join из 3-х таблиц
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. помогите составить запрос. 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 из таблицы заказов, но я не могу показать заказы в день отгрузки. Помогите пожалуйста.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2005, 13:43 |
|
||
|
Выборка Left join из 3-х таблиц
|
|||
|---|---|---|---|
|
#18+
а что мешает сделать второй левт джоин по полю zakaz.id=otgruzka.id_zakaz ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2005, 15:18 |
|
||
|
Выборка Left join из 3-х таблиц
|
|||
|---|---|---|---|
|
#18+
Простите мою некомпетентность в этом вопросе, вы имеете ввиду вот такой запрос? SELECT * FROM `date` left join zakaz on (date.date=zakaz.date) left join otgruzka on (zakaz.id=otgruzka.id_zakaz) Но он, к сожалению, выводит не то, что мне надо, а кнкретно, он показывает только, что у заказа есть дата отгрузки, а на самой дате отгрузки сам заказ не выводиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2005, 16:28 |
|
||
|
Выборка Left join из 3-х таблиц
|
|||
|---|---|---|---|
|
#18+
я имел в виду что то вроде SELECT z.* , o.* FROM `date` d left join zakaz z on d.date=z.date left join otgruzka o on z.id=o.id_zakaz ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2005, 19:21 |
|
||
|
Выборка Left join из 3-х таблиц
|
|||
|---|---|---|---|
|
#18+
Нет, не подходит, он не выводит нужный список, не показывает отгружаемые заказы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2005, 19:45 |
|
||
|
Выборка Left join из 3-х таблиц
|
|||
|---|---|---|---|
|
#18+
:) я же тебе идею дал а не полностью готовый запрос, тем более что проверить его я ну никак не могу ... да и не хочу ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2005, 23:01 |
|
||
|
Выборка Left join из 3-х таблиц
|
|||
|---|---|---|---|
|
#18+
Если версия mysql >= 4.0.0, то можно попробовать с union: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2005, 08:02 |
|
||
|
Выборка Left join из 3-х таблиц
|
|||
|---|---|---|---|
|
#18+
Ekshibarov Vladimir БОЛЬШОЕ СПАСИБО!!!! С Вашей помощью придумал такой код, который выводит то, что нужно. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Он очень страшный и громоздкий? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2005, 10:48 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=656&tid=1853951]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 335ms |

| 0 / 0 |
