Бьюсь об заклад,
araqnid - это ответ, который вы ищете.
Но если вы хотите, чтобы для каждой исходной строки A
возвращалось не более одной строки, вы можете предпочесть сделатьвыберите вместо LEFT JOIN.Например:
SELECT A.id, COALESCE(
( SELECT max(B.title) FROM B WHERE
langcode = 'nl' AND B.table_a_id = A.id), A.name ) as name
FROM A
WHERE A.id = 5
Я использую здесь " max ", чтобы выбрать произвольное значение, если их больше одного.Вы можете использовать « min » или что-то, что вы считаете подходящим в вашем случае.
Возможно, это легче понять, чем LEFT JOIN, но (за исключением двух не совсем эквивалентных)JOIN будет работать лучше, чем N подвыборов (гораздо лучше, если N велико).
В любом случае, с точки зрения обучения, хорошо понимать и то и другое.