我需要从事件模板中删除包含在请求组1或3中的所有事件,具体取决于后者的类型。
请求字段和其中包含的模板是成对连接的(请求"id"字段-模板"from"字段),以及成对的模板-事件(模板的"id"字段-事件的"tmpid"字段)。
For clarity, I will attach a screen.
我需要从所有模板中删除与过时请求相关的所有事件(可能有几个)。
我试着这样做:
DELETE FROM
public.events_tmp_acc
WHERE "tmpid" IN (
SELECT "id"
FROM public.tmp_acc
WHERE "from" IN (
SELECT "id"
FROM
public.events_req_form
WHERE
to_date("date", 'YYYY-MM-DD') < to_date( (
SELECT
"date"
FROM
public.events_req_form
WHERE
"isActive" = true
),
'YYYY-MM-DD'
)
AND "isAccepted" = true
)
);
但我遇到了一个错误:"错误:用作表达式的子查询返回了多行"。问题出在哪里?
1条答案
按热度按时间jdgnovmf1#
"isActive"
子查询可能返回多行。解决此问题的一种可能方法是在此处也使用IN或使用EXISTS子句,如下所示(对于“from”IN之后的部分):