DELETE B.*
FROM m_productprice B
INNER JOIN m_product C ON B.m_product_id = C.m_product_id
WHERE C.upc = '7094' AND B.m_pricelist_version_id = '1000020'
我收到以下错误PostgreSQL 8.2.11
ERROR: syntax error at or near "B"
LINE 1: DELETE B.* from m_productprice B INNER JOIN m_product C ON ...
我试着给予
DELETE B from m_productprice B INNER JOIN m_product C ON B....
ERROR: syntax error at or near "B"
我试着给予
ERROR: syntax error at or near "INNER"
LINE 1: DELETE from m_productprice B INNER JOIN m_product C ON B.m_...
我的查询有什么问题?
6条答案
按热度按时间bqujaahr1#
或
dfddblmv2#
这对我很有效:
sauutmhj3#
如果有多个联接,可以使用逗号分隔的USING语句:
Reference
7vhp5slm4#
另一种与Postgres 9.1+一起工作的形式是将Common Table Expression与USING语句结合起来进行连接。
g2ieeal75#
只需将子查询与INNER JOIN、LEFT JOIN或smth else一起使用:
为了优化查询,
IN
mepcadol6#
基本上这里提到的所有东西都在文档中提到了,但是没有人具体说明是什么。所以这就是 * current(v15)*
DELETE
文档所说的:注解
PostgreSQL允许你通过在
USING
子句中指定其他表来引用WHERE
条件中的其他表的列。例如,要删除给定制片人制作的所有电影,可以执行以下操作:这里实际上发生的是films和producer之间的连接,所有成功连接的films行都被标记为删除。此语法不是标准的。更标准的方法是:
在某些情况下,关联样式比子选择样式更易于编写或执行。