Представьте, что у меня есть эти данные
человек -> изменение адреса -> причины изменения адреса
Я хочу детали всех людей
Я также хочу знать, изменили ли они когда-либо адрес из-за пожара. Поэтому я не хочу знать, каковы причины, но если они изменили адрес по одной причине.
Каждый человек может иметь несколько причин смены адреса
так что у меня
SELECT people.*
CASE WHEN add_change.reason_id is not NULL THEN
'Y'
ELSE
'N'
END as been_fire
from people
left outer join add_change ON person.id = add_change.person
left outer join add_change_reason ON add_change.reason_id = add_change_reason.id AND add_change_reason.text = 'FIRE'
но это возвращает несколько строк на человека, если у них много изменений адреса.
Я не могу просто использовать
left outer join add_change ON add_change.person = person.id AND add_change.reason_id = 5
, поскольку это не фиксированные данные.