powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Поможите составить простой запрос с несколькими объединениями
7 сообщений из 7, страница 1 из 1
Поможите составить простой запрос с несколькими объединениями
    #32808786
Mick-the-Pick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, pls, как сие сделать:

Имеется таблица "Накладные" в кот. хранятся накладные(Номер_накладной, ID_тип_накладной, ID_товара, ID_заказчика, ID_поставщика). То есть по сути дела в ней хранятся только номера-ссылки на другие таблицы:
она связана(по ID-шникам) с таблицами
"Типы_Накладных", "Товары", "Заказчики".
Заказчики и поставщики хранятся в одной таблице - "Заказчики".

Подскажите, как составить запрос, чтобы получить в итоге например выборку накладных вида:
Накладная №: 234/п (данные берем непосредств. из таблицы Накладные)
Тип накладной: На прием оборудования (данные берем из табл. Типы_Накл.)
Товар: Ручка пластиковая (данные берем из табл. Товары)
Заказчик: ООО "Рога и Копыта" (данные берем из табл. Заказчики)
Поставщик: ООО "Путь Ильича" (данные берем тоже из табл. Заказчики).


Извиняйте за ламерский вопрос, но я пока с SQL только начинаю знакомиться.
Версия Мускуля - 4.0 - т.е. вложенные запросы недоступны.
...
Рейтинг: 0 / 0
Поможите составить простой запрос с несколькими объединениями
    #32809040
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Например так.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT
  табл_накл.№,
  табл_накл.Тип,
  табл_товаров.Товар,
  табл_заказчиков.Заказчик,
  табл_поставщиков.Поставщик
FROM
  табл_накл,
  табл_товаров,
  табл_заказчиков,
  табл_поставщиков
WHERE 
  табл_накл.код_товара =табл_товаров.код,
  табл_накл.код_заказчика =табл_заказчиков.код,
  табл_накл.код_поставщика =табл_поставщиков.код
Один только минус - если есть накладная снарушенными связями
(нет товаров, заказчиков,поставщиков)
то она выпадет из выборки

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
Поможите составить простой запрос с несколькими объединениями
    #32809246
Mick-the-Pick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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)

В результате получаю выборку накладных, с двумя совершенно одинаковыми столбцами Поставщик и Заказчик.
Вся беда в том, что и заказчики и поставщики хранятся в одной таблице.
Как бы мне это обойти, не прибегая к созданию временных таблиц - одним запросом?
...
Рейтинг: 0 / 0
Поможите составить простой запрос с несколькими объединениями
    #32809294
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если ты в запросе дважды используешь одну таблицу,
то тебе помогут алиасы таблиц:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SELECT
  Nakladnye.Number,
  Types_nakladnye.Name,
  Tovary.Name,
  a.Name,
  b.Name

FROM
  Nakladnye,
  Types_nakladnye,
  Tovary,
  Zakazchiki a,
  Zakazchiki b,

WHERE
  Types_nakladnye.ID = Nakladnye.Type AND
  Tovary.ID = Nakladnye.Tovar AND
  a.ID = Nakladnye.Zakazchik AND
  b.ID = nakladnye.Postavshik)


Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
Поможите составить простой запрос с несколькими объединениями
    #32809348
Mick-the-Pick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Marat_L:
Вот оно!!!!!!! Алиасы - именно то что мне было нужно. Все заработало!
Благодарствую преогромнейше!


ЗЫ: А вот еще (ну это уж так в порядке самообразования - чтоб на будущее знать) А как переписать этот же запрос, но с использованием JOIN? Ответьте, плз, если у кого желание будет.
...
Рейтинг: 0 / 0
Поможите составить простой запрос с несколькими объединениями
    #32809366
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT
  Nakladnye.Number,
  Types_nakladnye.Name,
  Tovary.Name,
  a.Name,
  b.Name

FROM   Nakladnye
LEFT JOIN  Types_nakladnye ON  Types_nakladnye.ID = Nakladnye.Type
LEFT JOIN    Tovary ON  Tovary.ID = Nakladnye.Tovar 
LEFT JOIN    Zakazchiki a ON  a.ID = Nakladnye.Zakazchik 
LEFT JOIN   Zakazchiki b ON  b.ID = nakladnye.Postavshik

Такой запрос покажет ВСЕ накладные, независимо от целостности связей

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
Поможите составить простой запрос с несколькими объединениями
    #32809453
Mick-the-Pick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Marat_L>>Такой запрос покажет ВСЕ накладные, независимо от целостности связей

Работает на ура.
Ну вот, и JOIN я освоил ;)

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


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