我的Postgresql数据库有此sql:
DELETE FROM table1
USING table2
WHERE table1.id = table2.table2_id
AND table1.id = $1
一个问题是,当table2中没有条件为table1.id = table2.table2_id
的数据时,它将不会从任何表中删除任何内容。
我想让它始终从table1
中删除数据,而不管table1.id = table2.table2_id
中是否有table2
的数据
我该如何扭曲脚本?
答案 0 :(得分:0)
DELETE FROM table1
USING table2
WHERE table1.id = coalesce(table2.table2_id,table1.id)
AND table1.id = $1
我从未使用过PostgreSQL,但是如果table2没有引用,则必须添加一个null子句,这种方式可以合并...我认为。