Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » MySQL » Как объединить несколько таблиц по нескольким полям в одном запросе MySQL?

Как объединить несколько таблиц по нескольким полям в одном запросе MySQL?


     Все вопросы » MySQL    3023

вопрос
Добрый день. У меня есть:
Таблица "заявки", в которой в которой хранятся: Номер заявки, ID пользователя, ID компании
Таблица "пользователи", в которой хранятся: ID пользователя и остальные персональные данные
Таблица "компании", в которой хранятся: ID компании, Название компании, ID типа компании
Таблица "типы компаний", в которой хранятся: ID типа компании, Наименование типа компании.

Примерная схема данных представлена на рисунке:
Как объединить несколько таблиц по нескольким полям в одном запросе MySQL?


Мне нужно вывести все заявки вместе с данными пользователя, данными компании и типом компании, в одном запросе, то есть "собрать" все таблицы относительно таблицы Request (Request.uID = Users.uID и Request.cID = Company.cID, к тому же ещё Company.tID = TypesOfCompany.tID)

Загружать заявки только с данными пользователя или только с данными компании было не сложно при помощи LEFT JOIN, но, а, когда дело коснулось загрузки всех данных одновременно, то всё зашло в тупик, ведь данные пользователя и данные компании ничего не знают друг о друге...

SELECT * FROM Request R LEFT JOIN Users U ON R.uID = U.uID

SELECT * FROM Request R LEFT JOIN (Company C LEFT JOIN TypesOfCompany T ON C.tID=T.tID) ON R.cID = C.cID


В общем, как я не пытался объединить это всё воедино - ничего не получалось. Надеюсь на вашу помощь, может подскажете решение, ну или хотя бы куда нужно копать :) Заранее спасибо.

Ответа пока нет


2 комментария

temporary
Юзер

temporary - -

Может так:
SELECT r.rID, r.uID, u.uName, c.cID, c.tID, c.cName, t.tName FROM Request AS r LEFT JOIN Users AS u ON (u.uID = r.uID) LEFT JOIN Company AS c ON (c.cID = r.cID) LEFT JOIN TypesOfCompany AS t ON (t.tID = c.tID) WHERE 1

golden_eagle_god
Юзер

golden_eagle_god - -

Благодарю

Похожие вопросы

 20.08.2014 Pringles  MySQL
наверх