[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Многотабличный запрос
simp
UPD: пардон, похоже не в тот раздел запостил, перенесите плиз

Добрый день.
Подскажите пож-та как можно решить такую задачу.


SELECT `events`.`event_id`,
`events`.`title_event`,
`company_profile`.`title`,
`events`.`company_id`,
`events`.`status`,
`events`.`public_confirm`,
`company`.`manager_id`,
`user_profile`.`name` AS `name_manager`,
`user_profile`.`surname` AS `surname_manager`
/*
`user_profile`.`name` AS `name_user`,
`user_profile`.`surname` AS `surname_user`
*/


FROM `events`

LEFT JOIN `company_profile` ON `events`.`company_id` = `company_profile`.`id_company`
LEFT JOIN `company` ON `events`.`company_id` = `company`.`comp_id`
LEFT JOIN `user_profile` ON `company`.`manager_id` = `user_profile`.`user_id`
-- LEFT JOIN `user_profile` ON `events`.`user_id` = `user_profile`.`user_id`



В главной таблице `events` есть два поля `user_id` и `manager_id`
Задача вывести в таблицу данные(`name` `surname`) о юзере и менеджере в одну(общую) таблицу.
Их данные хранятся в таблице `user_profile`
Связать через LEFT JOIN можем только либо юзера либо менеджера, как я понимаю.

То что закоменченно, это для более наглядного примера, что именно хотелось бы получить.

Ранее делал это просто тремя мелкими запросами и далее уже формировал общий массив, перебирая то что получил из 3х запросов.
Но может всё же есть способ ( о котором я еще не знаю) сделать это с помощью SQL запроса.
sergeiss
Всё очень просто решается. Тебе надо назначить алиасы каждой таблице. Я напишу алиасы в твоем запросе, не изменяя его суть, а ты попробуй сообразить, как эту же штуковину использовать для расширения запроса :) Ежели ты сам сделал этот запрос (думаю, что это так и есть), то ты догадаешься быстро.
Итак (надеюсь, что я нигде не ошибся)....

SELECT  `e`.`event_id`,
`e`.`title_event`,
`p`.`title`,
`e`.`company_id`,
`e`.`status`,
`e`.`public_confirm`,
`c`.`manager_id`,
`u`.`name` AS `name_manager`,
`u`.`surname` AS `surname_manager`
/*
`user_profile`.`name` AS `name_user`,
`user_profile`.`surname` AS `surname_user`
*/


FROM `events` `e`

LEFT JOIN `company_profile` `p` ON `e`.`company_id` = `p`.`id_company`
LEFT JOIN `company` `c` ON `e`.`company_id` = `c`.`comp_id`
LEFT JOIN `user_profile` `u` ON `c`.`manager_id` = `u`.`user_id`
-- LEFT JOIN `user_profile` ON `events`.`user_id` = `user_profile`.`user_id`


PS. Тему перенес в другой раздел.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
simp
Огромное спасибо, всё понятно.
Жить теперь стало намного проще )))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.