gpt4 book ai didi

sql - 从表A中删除加入Redshift中的表A

转载 作者:行者123 更新时间:2023-12-04 22:12:30 26 4
gpt4 key购买 nike

我正在尝试在PostgreSQL 8.0中编写以下MySQL查询(特别是使用Redshift):

DELETE t1 FROM table t1
LEFT JOIN table t2 ON (
t1.field = t2.field AND
t1.field2 = t2.field2
)
WHERE t1.field > 0

PostgreSQL 8.0不支持 DELETE FROM table USINGdocs中的示例说,您可以在where子句中引用其他表中的列,但这在这里不起作用,因为我要加入要从中删除的同一张表。另一个示例是子选择查询,但是我正在使用的表的主键有四列,因此我也看不到使该键起作用的方法。

最佳答案

我不了解mysql语法,但您可能想要这样:

DELETE FROM mytablet1
WHERE t1.field > 0
-- don't need this self-join if {field,field2}
-- are a candidate key for mytable
-- (in that case, the exists-subquery would detect _exactly_ the
-- same tuples as the ones to be deleted, which always succeeds)
-- AND EXISTS (
-- SELECT *
-- FROM mytable t2
-- WHERE t1.field = t2.field
-- AND t1.field2 = t2.field2
-- )
;

注意:出于测试目的,您可以将 DELETE关键字替换为 SELECT *SELECT COUNT(*),并查看查询将影响哪些行。

关于sql - 从表A中删除加入Redshift中的表A,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23393232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com