我有2张桌子: 项目和库存。 items具有有关所有产品描述和库存的所有信息,而tbl_stock是库存。我想更新tbl股票中的av_stock列。 这是我的查询:
update `stock` inner JOIN
(
SELECT item_total_stock FROM items
ORDER BY item_total_stock DESC
) s
ON items.id = stock.id
set stock.av_stock = `item_total_stock`
但是我收到错误
#1054 - Unknown column 'items.id' in 'on clause'
我已经检查了表是否正确,并且ID是否正确,有任何线索吗?
答案 0 :(得分:2)
您在联接中使用的别名必须与子查询匹配:
UPDATE stock s
INNER JOIN (
SELECT item_total_stock
FROM items
) i
ON i.id = s.id
SET av_stock = item_total_stock
但是,您甚至不需要在这里进行子查询:
UPDATE stock s
INNER JOIN items i
ON i.id = s.id
SET av_stock = i.item_total_stock
答案 1 :(得分:0)
在内部联接中,sql应该具有列id
update `stock` a inner JOIN
(
SELECT id,item_total_stock FROM items
ORDER BY item_total_stock DESC
) s
ON s.id = a.id
set a.av_stock = s.`item_total_stock`