[英]SQL UPDATE base on COUNT
我有兩張桌子
產品表包含不同類別的多個產品。 而且我知道如何計算每個類別中的產品使用
SELECT category_id, COUNT(product.id) as count FROM product GROUP BY category_id
但是,如何使用單個 sql 查詢和 SELECT.... 的結果更新 category.num_of_product ? 我已經嘗試過,但無法弄清楚正確的語法!
UPDATE c
SET num_of_products = count
FROM category c
INNER JOIN
(SELECT category_id as id, COUNT(product.id) as count FROM product GROUP BY category_id) d ON c.id = d.id
有什么建議么?
試試這個查詢:
UPDATE category c
JOIN (SELECT category_id, COUNT(id) cnt
FROM product GROUP BY category_id) p
ON c.id=p.category_id
SET c.num_of_products=cnt;
如果你想用JOIN
做UPDATE
,你必須先做JOIN
然后再用SET
。 如果有條件,則需要在SET
之后添加WHERE
。 例如,假設您不想更新某個類別,那么可能:
UPDATE category c
JOIN (SELECT category_id, COUNT(id) cnt
FROM product GROUP BY category_id) p
ON c.id=p.category_id
SET c.num_of_products=cnt
WHERE c.id NOT IN (1,2);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.