Вы можете иметь несколько вариантов, все с разными наборами результатов.Кто из них был первоначальным намерением, трудно, если не невозможно, другим сказать:
( Вариация 1 - запрос Тобсея, сначала присоединитесь к t2, затем к t3, эквивалентно):
SELECT
*
FROM
t1
INNER JOIN --- or LEFT JOIN
t2
ON t1.col1 = t2.col1
LEFT JOIN
t3
ON t1.col2 = t3.col1
AND t2.col2 = t3.col2 --- this line makes the first LEFT join
--- equal to INNER join
( Вариация 2 - сначала присоединиться к t3, затем к t2):
SELECT
*
FROM
t1
INNER JOIN --- or LEFT JOIN
t3
ON t1.col2 = t3.col1
LEFT JOIN
t2
ON t1.col1 = t2.col1
AND t3.col2 = t2.col2
(Вариант 3a - сначала присоедините t2 к t3, а затем присоедините t1 к этому соединению):
SELECT
*
FROM
t1
LEFT JOIN
t2
LEFT JOIN
t3
ON t2.col2 = t3.col2
ON t1.col1 = t2.col1
AND t1.col2 = t3.col1
Вариант 3 может иметь несколько дополнительных подвариаций, если заменить первое или второе LEFT
соединениес присоединением INNER
.
Полагаю, вам нужен вариант 3a.