|
|
|
Поможите составить простой запрос с несколькими объединениями
|
|||
|---|---|---|---|
|
#18+
Подскажите, pls, как сие сделать: Имеется таблица "Накладные" в кот. хранятся накладные(Номер_накладной, ID_тип_накладной, ID_товара, ID_заказчика, ID_поставщика). То есть по сути дела в ней хранятся только номера-ссылки на другие таблицы: она связана(по ID-шникам) с таблицами "Типы_Накладных", "Товары", "Заказчики". Заказчики и поставщики хранятся в одной таблице - "Заказчики". Подскажите, как составить запрос, чтобы получить в итоге например выборку накладных вида: Накладная №: 234/п (данные берем непосредств. из таблицы Накладные) Тип накладной: На прием оборудования (данные берем из табл. Типы_Накл.) Товар: Ручка пластиковая (данные берем из табл. Товары) Заказчик: ООО "Рога и Копыта" (данные берем из табл. Заказчики) Поставщик: ООО "Путь Ильича" (данные берем тоже из табл. Заказчики). Извиняйте за ламерский вопрос, но я пока с SQL только начинаю знакомиться. Версия Мускуля - 4.0 - т.е. вложенные запросы недоступны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 09:11 |
|
||
|
Поможите составить простой запрос с несколькими объединениями
|
|||
|---|---|---|---|
|
#18+
Например так. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. (нет товаров, заказчиков,поставщиков) то она выпадет из выборки Жизнь коротка - потерпи немного :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 11:03 |
|
||
|
Поможите составить простой запрос с несколькими объединениями
|
|||
|---|---|---|---|
|
#18+
2 Marat_L: Так не получается. Делаю: SELECT Nakladnye.Number, Types_nakladnye.Name, Tovary.Name, Zakazchiki.Name, Zakazchiki.Name FROM Nakladnye, Types_nakladnye, Tovary, Zakazchiki WHERE Types_nakladnye.ID = Nakladnye.Type AND Tovary.ID = Nakladnye.Tovar AND (Zakazchiki.ID = Nakladnye.Zakazchik OR Zakazchiki.ID = nakladnye.Postavshik) В результате получаю выборку накладных, с двумя совершенно одинаковыми столбцами Поставщик и Заказчик. Вся беда в том, что и заказчики и поставщики хранятся в одной таблице. Как бы мне это обойти, не прибегая к созданию временных таблиц - одним запросом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 12:08 |
|
||
|
Поможите составить простой запрос с несколькими объединениями
|
|||
|---|---|---|---|
|
#18+
Если ты в запросе дважды используешь одну таблицу, то тебе помогут алиасы таблиц: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Жизнь коротка - потерпи немного :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 12:20 |
|
||
|
Поможите составить простой запрос с несколькими объединениями
|
|||
|---|---|---|---|
|
#18+
2 Marat_L: Вот оно!!!!!!! Алиасы - именно то что мне было нужно. Все заработало! Благодарствую преогромнейше! ЗЫ: А вот еще (ну это уж так в порядке самообразования - чтоб на будущее знать) А как переписать этот же запрос, но с использованием JOIN? Ответьте, плз, если у кого желание будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 12:40 |
|
||
|
Поможите составить простой запрос с несколькими объединениями
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Такой запрос покажет ВСЕ накладные, независимо от целостности связей Жизнь коротка - потерпи немного :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 12:47 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=32808786&tid=1854565]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
196ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 513ms |

| 0 / 0 |
