|
|
|
| Есть таблицы:
employees - id, post, name
employees_post - id, post_name
orders - serial_number, manager, kurier, date
towar - serial_number, price, nazvanie
В таблице employees хранятся записи о сотрудниках: id, должность(post) - связана с таблицей employees_post (employees.post = employees_post.id), фио сотрудника.
В таблице towar хранятся записи о товаре: серийный номер, цена, название.
Таблица orders является связующей таблицей. orders.serial_number - ссылка на таблицу towar, manager - ссылка на employees.id, kurier - также ссылка на employees.id.
Как мне выбрать название товара, цену товара, фио менеджера, фио курьера, дату заказа?
У меня проблема возникает при связке менеджера к employees.name и курьера к employees.name.
Я делаю такой запрос:
SELECT towar.nazvanie, towar.price, orders.date, employees.name as manager, employees.name as kurier
FROM ((orders JOIN towar ON towar.serial_number = orders.serial_number) JOIN employees ON тут как раз проблемка возникла)
WHERE orders.serial_number = 1
|
| |
|
|
|
|
|
|
|
для: Кирилл Пачин
(27.08.2006 в 16:58)
| | Вы не могли бы скинуть дамп таблиц? | |
|
|
|
|
|
|
|
для: Кирилл Пачин
(27.08.2006 в 16:58)
| | Хм... в MySQL скобки пока вроде бы не допускаются при объединении таблиц... Обещают исправить в будующих версиях. | |
|
|
|
|
|
|
|
для: cheops
(27.08.2006 в 22:33)
| | У меня 4.1.20-community-nt и запросы со скобками выполняются нормально. Если вы про скобки внутри JOIN, то не знаю. Поэтому и прошу помощи. | |
|
|
|
|
|
|
|
для: Кирилл Пачин
(27.08.2006 в 22:48)
| | Я JOIN имею ввиду. | |
|
|
|
|
|
|
|
для: cheops
(28.08.2006 в 12:18)
| | Запрос
SELECT towar.nazvanie, towar.price, orders.date, employees.name as manager
FROM ((orders JOIN towar ON towar.serial_number = orders.serial_number) JOIN employees ON employees.name = orders.manager) WHERE orders.serial_number = 1
|
Выполняется нормально. Если скобки внутри ON, то я не проверял. Вот такая у меня версия mysql :) 4.1.20-community-nt | |
|
|
|
|
|
|
|
для: Кирилл Пачин
(27.08.2006 в 16:58)
| |
SELECT towar.nazvanie, towar.price, orders.date, managers.name as manager, couriers.name as kurier
FROM towar
JOIN orders ON towar.serial_number = orders.serial_number
JOIN employees managers ON orders.manager = managers.id
JOIN employees couriers ON orders.kurier = couriers.id
WHERE ...
|
| |
|
|
|
|
|
|
|
для: Trianon
(28.08.2006 в 10:19)
| | Спасибо! Попробую так. Только мне не понятна вот эта часть:
JOIN employees managers ON orders.manager = managers.id
JOIN employees couriers ON orders.kurier = couriers.id | |
|
|
|
|
|
|
|
для: Кирилл Пачин
(28.08.2006 в 12:50)
| | managers и couriers это алиасы таблицы employees.
Можно написать
JOIN employees AS managers ON orders.manager = managers.id
JOIN employees AS couriers ON orders.kurier = couriers.id
| если так понятнее. | |
|
|
|
|
|
|
|
для: Trianon
(28.08.2006 в 20:52)
| | Спасибо, мне так более понятно, даже совсем понятно! | |
|
|
|