У меня есть ситуация, когда у меня есть одна таблица заголовков (t1) и другая таблица с несколькими ссылками, которые ссылаются на эти заголовки (t2) в отношении один ко многим.
Мне нужен полный список заголовков, возвращаемых с флагом, указывающим, связана ли с ним определенная ссылка.
Соединение влево и группировка по:
SELECT
t1.id
, t1.title
, t2.link_id AS refId
FROM
t1
LEFT JOIN t2
ON (t1.id = t2.title_id)
GROUP BY t1.id;
Это близко, поскольку дает мне либо первый link_id, либо NULL в столбце refId.
Теперь, как мне ограничить результаты, если у меня есть конкретный link_id вместо того, чтобы позволить t2 проходить через весь набор данных?
Если я добавлю предложение WHERE, например:
WHERE t2.link_id = 123
Я получаю только несколько записей, где совпадает link_id, но мне все еще нужен полный набор заголовков, возвращаемых с NULL в столбце refId, если link_id = 123.
Надеюсь, кто-то может помочь