Выбор данных из нескольких таблиц и использование левого соединения? - PullRequest
1 голос
/ 08 ноября 2010

У меня есть запрос, который не работает, и это сводит меня с ума;).В основном это то, что я пытаюсь достичь:

SELECT
  table1.field1,
  table1.field2,
  table2.field1,
  table3.field1
FROM
  table1,
  table2
LEFT JOIN
  table3
ON table3.field1 = table2.field1

Но по какой-то причине я не могу выполнить этот запрос.Я полагаю, что это происходит из-за того, что соединение выполняется после указания выбора из нескольких таблиц.Потому что этот запрос работает, когда я выбираю из 1 таблицы.

Может кто-нибудь сказать мне, что делать, если я хочу выбрать из нескольких таблиц и использовать объединения?

Ответы [ 2 ]

3 голосов
/ 08 ноября 2010

Вам не хватает условия JOIN между table1 и table2:

SELECT  table1.field1,
        table1.field2,
        table2.field1,
        table3.field1
FROM    table1
LEFT JOIN
        table2
ON      table2.id = table1.id
LEFT JOIN
        table3
ON      table3.field1 = table2.field1
1 голос
/ 08 ноября 2010

Возможно, вы хотите использовать предложение JOIN и ON для вашего первого соединения.Что-то вроде:

SELECT 
  t1.field1, 
  t1.field2, 
  t2.field1, 
  t3.field1 
FROM table1 t1
INNER JOIN table2 t2 on t1.ID = t2.ID
LEFT JOIN table3 t3 ON t3.field1 = t2.field1 

Обратите внимание, что ВНУТРЕННЕЕ СОЕДИНЕНИЕ, возможно, должно быть левым, это не ясно из вашего вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...