SQL Server - 更新时的内部联接

Lee*_*Tee 333 sql-server inner-join

我有以下查询不起作用.我究竟做错了什么?这甚至可能吗?

UPDATE ProductReviews AS R 
   INNER JOIN products AS P 
       ON R.pid = P.id 
SET R.status = '0' 
WHERE R.id = '17190' 
  AND P.shopkeeper = '89137'
Run Code Online (Sandbox Code Playgroud)

Aar*_*and 729

UPDATE R 
SET R.status = '0' 
FROM dbo.ProductReviews AS R
INNER JOIN dbo.products AS P 
       ON R.pid = P.id 
WHERE R.id = '17190' 
  AND P.shopkeeper = '89137';
Run Code Online (Sandbox Code Playgroud)

  • @Farside此​​语法适用于SQL Server.抱歉,其他人将不得不帮助您使用MySQL语法. (6认同)

Bri*_*dge 55

这应该这样做:

UPDATE ProductReviews
SET    ProductReviews.status = '0'
FROM   ProductReviews
       INNER JOIN products
         ON ProductReviews.pid = products.id
WHERE  ProductReviews.id = '17190'
       AND products.shopkeeper = '89137'
Run Code Online (Sandbox Code Playgroud)

  • @JohhanSantana这个问题被标记为SQL server - 不保证它可以在其他DBMS系统上运行. (7认同)
  • 这给我在PostgreSQL中多次指定“错误:表名“ ProductReviews”” (2认同)