我想写下面的更新语句;更新声明使用派生表
UPDATE @eticat
SET eticat_purchase_total = t.eticat_purchase_total
FROM (
SELECT eticat_id, COUNT(eticat_id) as eticat_purchase_count
FROM etransaction
INNER JOIN etransaction_item
INNER JOIN etransaction_item_catalog ON eti_eticat_id = eticat_id
ON eti_et_id = et_id
WHERE et_cmc_id = @can_cmc_id
GROUP by eticat_id
) as t
WHERE eticat_id = t.eticat_id
但它一直抱怨ambigous列。有人可以告诉我我做错了什么。
编辑:错误消息是“不明确的列名'eticat_id'。”
即线是 'WHERE eticat_id = t.eticat_id'
您能否包含错误消息? – codingbiz
您需要别名您的内部连接表,例如'INNER JOIN etransaction_item_catalog eic ON eic.eti_eticat_id = et.eticat_id' – codingbiz
如果两个表包含相同的列名称,要在JOIN中使用它,则需要通过ALIAS引用该表,以便查询将知道您正在引用哪个表列 – codingbiz