У меня проблема при переходе от ситуации, когда работает внешнее соединение, к месту, где оно не работает.
Рабочая (пример псевдокода)
SELECT a.number, a.name, b.ref, c.ref, c.firmref
FROM jobs a, teams b LEFT OUTER JOIN teamfirms c ON b.ref = c.team
WHERE a.ref = b.job
Между заданиями и командами существует много-одно отношение (много команд на задание), всегда заполнено
В таблице c могут быть или не быть фирмы, но приведенный выше запрос дает мне ожидаемый результат (около 5000 записей)
Проблема возникает, когда я хочу представить подробности о командах из четвертого стола
Код, который я пытаюсь найти ниже
SELECT a.number, a.name, b.ref, c.ref, c.firmref, d.name
FROM jobs a, teams b LEFT OUTER JOIN teamfirms c ON b.ref = c.team, firms d
WHERE a.ref = b.job
AND d.ref = c.firmref
В этот момент пропадающие NULLs исчезают, и я сбрасываю около 500 записей
Что я делаю не так?