Sql Postgres-使用给定错误删除联接

Sql Postgres-使用给定错误删除联接,sql,postgresql,join,sql-delete,Sql,Postgresql,Join,Sql Delete,因此,Postgres中似乎没有DELETE JOINs,因此我尝试使用using: DELETE FROM creator.list_items li USING creator.lists l USING item_instances ii WHERE li.list_id = l._id AND li.item_instance_id = ii._id AND ii.item_id IN ($1:list) AND

因此,Postgres中似乎没有
DELETE JOIN
s,因此我尝试使用
using

DELETE FROM
    creator.list_items li
USING
    creator.lists l
USING
    item_instances ii
WHERE
    li.list_id = l._id
    AND
    li.item_instance_id = ii._id
    AND
    ii.item_id IN ($1:list)
    AND
    l._id = $2
    AND
    l.account_id = $3
但这只是给了我一个错误:

ERROR:  syntax error at or near "USING"
LINE 5:                 USING
我的原始查询:

DELETE 
    li
FROM
    creator.list_items li
JOIN
    creator.lists l
    ON
        li.list_id = l._id
JOIN
    item_instances ii
    ON
        li.item_instance_id = ii._id
WHERE
    ii.item_id IN ($1:list)
    AND
    l._id = $2
    AND
    l.account_id = $3

实际上,您可以在
USING
子句中使用
JOIN

DELETE FROM
    creator.list_items li
USING creator.lists l JOIN
      item_instances ii
      ON li.list_id = l._id
WHERE li.item_instance_id = ii._id AND
      ii.item_id IN ($1:list) AND
      l._id = $2 AND
      l.account_id = $3;
我的功能查询:

DELETE FROM
    creator.list_items li
USING 
    creator.lists l 
WHERE 
    li.item_instance_id 
        IN 
        (
            SELECT
                _id
            FROM
                creator.item_instances
            WHERE
                item_id IN ($1:list) 
        )
    AND
    li.list_id = $2 
    AND
    li.list_id = l._id
    AND
    l.account_id = $3

using
关键字只能使用一次,就像
where
关键字一样。可能重复@Jens,所以我在查询中有两个
using
关键字,这是否意味着我只需要在
where
部分使用更多
选择
?对于该查询,我得到:
提示:有一个表“li”的条目,但是它不能从查询的这一部分引用。
需要切换
ii
li
以消除错误。等等,我搞砸了,这只会从
item\u实例中删除
,所以问题仍然存在stands@a_horse_with_no_name我之前做过一次编辑,但不正确,我指的是,您可以检查编辑历史记录。