我是 PostgreSQL 新手,但对以下查询有疑问:
WITH relevant_einsatz AS (
SELECT einsatz.fahrzeug,einsatz.mannschaft
FROM einsatz
INNER JOIN bergefahrzeug ON einsatz.fahrzeug = bergefahrzeug.id
),
relevant_mannschaften AS (
SELECT DISTINCT relevant_einsatz.mannschaft
FROM relevant_einsatz
WHERE relevant_einsatz.fahrzeug IN (SELECT id FROM bergefahrzeug)
)
SELECT mannschaft.id,mannschaft.rufname,person.id,person.nachname
FROM mannschaft,person,relevant_mannschaften WHERE mannschaft.leiter = person.id AND relevant_mannschaften.mannschaft=mannschaft.id;
这个查询基本上是有效的——但在“relevant_mannschaften”中,我目前正在选择每个 mannschaft,它已经到了一个至少有 1 个 bergefahrzeug 的相关的einsatz。
而不是这个,我想选择每个 mannschaft 到“relevant_mannschaften”,这些 mannschaft 已经从 bergefahrzeug 到了一个相关的 einsatz WITH EACH。
有人知道如何制定这种变化吗?