#1054-未知列的内部连接和更新顺序由

时间:2018-10-16 05:05:54

标签: mysql

我有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是否正确,有任何线索吗?

2 个答案:

答案 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`