LEFT JOIN с несколькими таблицами

Эдди

Новичок
LEFT JOIN с несколькими таблицами

Думаю, что мой вопрос окажется в корзине. Но все равно задам.

Если:
SELECT * FROM table1 LEFT JOIN table2 ON table1.id=table2.id
Здесь все понятно.

А если мне надо сделать то же самое, но когда к таблице table1 надо привязать по LEFT JOIN несколько таблиц.

Какой синтаксис будет?

Искал. Не нашел....
 

Эдди

Новичок
Спасибо

-~{}~ 28.01.09 13:30:

Еще вопрос.

Мне надо к таблице table1 надо привязать по LEFT JOIN таблицу table2, а к таблице table2 по LEFT JOIN третью таблицу table3.

Это вообще реально?

-~{}~ 28.01.09 13:34:

Суть того, что надо, в следующем:

table1 связана с table2, а table2 связана с table3

Записи из первой таблицы должны выводиться безоговорочно.
Но надо сделать проверку, если ли соответствующие им записи в третьей таблице, которая связана с первой не напрямую, а только через вторую.

Записи из первой таблицы должны выводиться
 

DiMA

php.spb.ru
Команда форума
если у тебя проблемы со словом лефт джоин - ну выкини ты их!

напиши так и успокойся:

SELECT *
FROM table1, table2, table3
WHERE
table1.id=table2.id
AND
table1.id=table3.id

естественно, небольшие ньюансы есть, но ты их сам осилишь по доке
если все айдишки во всех таблицах существуют - то это будет равносильно лефт джойну
 

Эдди

Новичок
НЕ получится.
table1.id=table3.id - вот этого у меня нет.

Не связана первая таблица с третьей.

И даже если был бы. В случае, если в третьей таблице нет записи, запись из первой не выведется.

А записи из первой таблицы должны выводиться всегда.

-~{}~ 28.01.09 15:02:

В общем, пока делаю так.
Вывожу первую таблицу.
И при каждой итерации проверяю запросом, если ли записи в третьей таблице.

Не есть хорошо делать столько запросов.
Благо записей пока несколько десятков.
Работает быстро.

Но должен же быть другой путь - один запрос?
 

Найч

Алгоритмик :-)
тебе ответ написал edwardgorbachev, только условие джойна немного поправь
 

Эдди

Новичок
Автор оригинала: Найч
тебе ответ написал edwardgorbachev, только условие джойна немного поправь
edwardgorbachev мне показал ответ на первый вопрос. И большое спасибо ему.

Вот проблема, как подправить условие джойна.

ПРобовал по-разному.
SELECT
*
FROM
table1
LEFT JOIN table2 ON table1.id=table2.id
table2
LEFT JOIN table3 ON table2.id=table3.id

дает ошибку.

В "подправить" и есть проблема.
 

DiMA

php.spb.ru
Команда форума
> НЕ получится.
> table1.id=table3.id - вот этого у меня нет.

да какая нахрен разница? Все условия из "ON ..." перемести в "WHERE ..."
 

Эдди

Новичок
Автор оригинала: waldicom
table 2 на строке 6 убери
Ты думаешь, так заработает?
SELECT
*
FROM
table1
LEFT JOIN table2 ON table1.id=table2.id
LEFT JOIN table3 ON table2.id=table3.id

Проверяю...

-~{}~ 30.01.09 14:11:

Не получается.
Во столбцах второй и третьей таблицах дает только NULL
 
Сверху