Vic*_*ria 10 mysql sql alias join sql-update
请帮我解决这个问题,因为我尝试了这个论坛的所有内容,但仍未找到解决方案.
好吧,我有两张桌子:
我想更改表格价格中两个字段的值.我会给那些具体的价值观.
这些领域是:
但我想仅为ID为31的制造商更改字段.
所以,我首先检查INNER JOIN是否正常工作.
SELECT manufacturers.manufacturer_id,
prices.product_id,
prices.product_price,
prices.override,
prices.product_discount_id
FROM manufacturers
INNER prices
ON manufacturers.product_id=prices.product_id
AND manufacturers.manufacturer_id=31;
Run Code Online (Sandbox Code Playgroud)
但是当我尝试更新这两个字段时,我不知道如何做到这一点.例如,我试过这个,但它不起作用:
UPDATE prices
SET prices.override=1
FROM
INNER JOIN prices
ON manufacturers.product_id=prices.product_id
AND manufacturers.manufacturer_id=31;
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
UPDATE prices
SET prices.override=1,
INNER JOIN manufacturers
ON prices.virtuemart_product_id = manufacturers.virtuemart_product_id
AND manufacturers.manufacturer_id=31;
Run Code Online (Sandbox Code Playgroud)
我做错了什么?通常我收到的错误消息是:
#1064 - 您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在第3行的'FROM jos_virtuemart_product_prices价格INNER JOIN jos_virtuemart_product_man'附近使用正确的语法
我读了别名的东西,但仍然没有结果.
任何帮助,将不胜感激!
你有一些语法问题,MySQLUPDATE..JOIN
语法是:
UPDATE T
JOIN t2 ON()
SET ..
WHERE ..
Run Code Online (Sandbox Code Playgroud)
其次,在 , 之后有一个不必要的逗号SET prices.override=1
,所以:
UPDATE prices
INNER JOIN manufacturers
ON prices.virtuemart_product_id = manufacturers.virtuemart_product_id
AND manufacturers.manufacturer_id=31
SET prices.override=1
Run Code Online (Sandbox Code Playgroud)