2015-06-30 3 views
0

У меня есть база данных, в которой хранится информация об автомобилях. Есть 3 таблицы, которые не имеют внешних ключей:Mysql left join multiple tables

макияж (make_ID, имя, ..)

цвета (colour_id, c_name, ...)

двигатель (engine_id, eng_size ,. ..)

Там в четвёртом таблица, которая соединяет все остальные вместе с помощью внешних ключей (FK):

carDetails (CarDetails_ID, CD_make_ID, CD_colorID, ...)

Теперь я хотел бы использовать левые соединения для получения соответствующей информации из таблиц об автомобиле, используя идентификаторы в запросе.

В идеале я хотел бы выбрать make.name WHERE make.make_ID = carDetails.CD_make_ID и т. Д. И продолжать добавлять дополнительную информацию слева. Я пробовал это, и я получаю ошибки в предложении «где» ... видимо, его нельзя распознать.

SELECT name FROM make WHERE 'make.make_ID' = 'carDetails.CD_make_ID' LEFT JOIN colour.name WHERE colour.colour_ID = carDetails.CD_colour_ID 

Что я делаю неправильно?

+0

могли бы вы предоставить запрос, который вы сейчас используете? – acupajoe

+0

До сих пор я только следующее ... SELECT имя FROM 'make' WHERE 'make.make_ID' = '' carDetails.CD_make_ID LEFT JOIN' colour.name' WHERE colour.colour_ID = carDetails.CD_colour_ID – JumpMan247

+1

Возьмем Посмотрите на ответ Даниэля. Проблема с вашим запросом заключается в том, что вы пытаетесь указать WHERE, но вы еще не задали свой запрос 'carDetails'. Вы должны сделать свое соединение, чтобы получить эти данные, прежде чем вы сможете развернуть, используя/like/etc. – acupajoe

ответ

-1

Попробуйте

SELECT name FROM make, carDetails WHERE 'make.make_ID' = 'carDetails.CD_make_ID' LEFT JOIN colour.name ON colour.colour_ID = carDetails.CD_colour_ID