Существует таблица table1
, имеющая столбец hId
. Это также может содержать числовые значения, включая также 0
и null
. После некоторого соединения связи, каждый из table1.hId
имеют full name
, но только если hId !=0 or null
Внешнее соединение между столами
Тогда table2.Hpid = table1.hId -- but only if hId is not null or != 0
После этого table2.exId = table3.Id
и, наконец, table3.lId = table4.Id
То, что я пытался
SELECT
(SELECT table4.fullName
FROM table4
WHERE table4.Id = table3.lId)
FROM table1
JOIN table2 ON table1.hId = table2.hpId
JOIN table3 ON table3.Id = table2.exId
Но таким образом я получаю только строки, где table1.id = table2.hId
. Я считаю, что мне нужно использовать оператор case
(и когда table.hId = 0 or null
=> затем напечатайте 'error'), но как я могу это достичь?
Подготовка http://sqlfiddle.com будет гораздо легче помочь. – lad2025
В запросе есть ошибка: что такое 'ed.Id' в' JOIN table3 ON ed.Id = table2.exId'? – Paolo