SQL中使用联接的更新的正确语法是什么?
几分钟前我发布了一个问题,得到了这个问题SQL中使用联接的更新的正确语法是什么?,sql,Sql,几分钟前我发布了一个问题,得到了这个问题 update pf set price_test = (p.PRICE * .6) from product as p inner join product_featured as pf on pf.product_id = p.product_id 这是我的数据库结构 产品表 product_id int(11) NO PRI NULL auto_increment model varchar(64) NO NULL
update pf
set price_test = (p.PRICE * .6)
from product as p
inner join product_featured as pf on pf.product_id = p.product_id
这是我的数据库结构
产品表
product_id int(11) NO PRI NULL auto_increment
model varchar(64) NO NULL
sku varchar(64) NO NULL
location varchar(128) NO NULL
quantity int(4) NO 0
stock_status_id int(11) NO NULL
image varchar(255) YES NULL
manufacturer_id int(11) NO NULL
shipping int(1) NO 1
price decimal(15,4) NO 0.0000
该产品是一个特色表
product_id int(11) NO PRI 0
price_test decimal(15,2) YES NULL
但这是我的错误
编辑
我需要这个来为SQL工作
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from product as p
inner join product_featured as pf on pf.product_id = p.product' at line 3
更新sql语法为更新。。。设置哪里您正在损坏更新并一起选择…更新sql语法为update。。。设置哪里您正在破坏更新并一起选择…试试这个
update product_featured pf
set price_test = (
select p.PRICE * .6
from product p
where pf.product_id = p.product_id
)
试试这个
update product_featured pf
set price_test = (
select p.PRICE * .6
from product p
where pf.product_id = p.product_id
)
我认为您混淆了MySQL语法和MS SQL Server语法,因为SQL Server中不支持从更新;雅各布·爱格用正确的语法给出的答案似乎很好我认为您混淆了MySQL语法和MS SQL Server语法,因为SQL Server中不支持从更新;雅各布·爱格用正确的语法给出的答案看起来不错我认为以下内容在MySQL中有效,但我意识到你毕竟说的是SQL Server
UPDATE product AS p
INNER JOIN product_featured AS pf ON pf.product_id=p.product_id
SET price_test = (p.price * .6)
我收集了SQL Server中的以下工作,但手头没有:
UPDATE product_featured
SET product_featured.price_test = (product.price * .6)
FROM product_featured
INNER JOIN product ON product.product_id = product_featured.product_id
我认为下面的方法在MySQL中有效,但我意识到你毕竟说的是SQL Server
UPDATE product AS p
INNER JOIN product_featured AS pf ON pf.product_id=p.product_id
SET price_test = (p.price * .6)
我收集了SQL Server中的以下工作,但手头没有:
UPDATE product_featured
SET product_featured.price_test = (product.price * .6)
FROM product_featured
INNER JOIN product ON product.product_id = product_featured.product_id
我需要这个不是为了SQLmysql@Guffa我需要的是SQL而不是mysql…我在question@Tamer你的问题被标记为MySQL。。。而且,正如这个答案所说明的,没有绝对正确的SQL语法;不同的实现都有自己的。我解开了mysql的标签,我需要一个解决方案SQL@Tamer:您的错误消息显示MySQL。。。如果在SQL Server中运行查询,会发生什么情况?我需要这个用于SQL而不是SQLmysql@Guffa我需要的是SQL而不是mysql…我在question@Tamer你的问题被标记为MySQL。。。而且,正如这个答案所说明的,没有绝对正确的SQL语法;不同的实现都有自己的。我解开了mysql的标签,我需要一个解决方案SQL@Tamer:您的错误消息显示MySQL。。。如果在SQL Server中运行查询,会发生什么情况?您需要它来为SQL工作是什么意思?您的错误消息说,…MySQL服务器版本…如果必须使用ANSI SQL,那么@Jacob Eggers的答案就是您想要的答案。您需要它来为SQL工作是什么意思?您的错误消息说,…MySQL服务器版本…如果必须使用ANSI SQL,那么@Jacob Eggers的答案看起来就是您想要的答案。+1,这确实是ANSI SQL标准的更新方式。向前走,OP,并感到满意+1,这确实是进行此类更新的ANSI SQL标准方法。向前走,OP,并感到满意