area
-----
id BIGSERIAL PRIMARY KEY
deleted_at TIMESTAMP WITH TIME ZONE DEFAULT NULL
и
registration
-----
area_id BIGINT REFERENCES area(id) NOT NULL
Я хочу получить все записи от area
, которые имеют deleted_at IS NULL
, и те, которые могут иметь deleted_at is NOT NULL
, но представлены какFK в registration
.
SELECT * FROM area
JOIN registration AS reg
ON reg.area_id=area.id
WHERE area.deleted_at IS NULL;
пропустит area
записи, которые являются FK в registration
, но помечены как "удаленные".
Добавление AND
Предложение, касающееся столбца deleted_at
в предложении JOIN ON
, не имеет смысла, поскольку оно будет удалять только действительные записи.
Я не могу обернуть его вокруг своей головы, поскольку два where
условия как бы противоречат друг другу.