2012-05-01 2 views

ответ

11

группировать несколько соединений, синтаксис выглядит следующим образом (непроверенные на db2)

SELECT * 
FROM table1 t1 
LEFT JOIN (
    table2 t2 INNER JOIN table3 t3 ON t3.someId = t2.someId 
) ON t2.someId = t1.someId 

же синтаксис для левого присоединиться внутри LEFT JOIN(), но, пожалуйста, прочтите комментарий по @ X-Zero

SELECT * 
FROM table1 t1 
LEFT JOIN (
    table2 t2 LEFT JOIN table3 t3 ON t3.someId = t2.someId 
) ON t2.someId = t1.someId 
+2

Да, так оно и работает на DB2. OP запросил вложенное объединение «LEFT», но синтаксис в остальном не изменился. Однако, как правило, лучше всего делать внутренние соединения, и просто позволять внешнему самому левому ручку выполнять эти обязанности (если только по какой-то другой причине, чем несколько LEFT's могут стать извилистыми). –

+0

Спасибо @ChrisGessler .. Ваше решение было очень полезно .. Теперь я могу использовать вложенные JOINS в своем запросе. –

Смежные вопросы