2016-05-06 64 views
-1

我有兩個表。一個是類別ID,另一個是產品表。我想統計每個類別ID有多少個產品,查詢如下。插入計數的連接表

SELECT hkgg_emall_goods_class.gc_id, COUNT(*) as productcount 
FROM hkgg_emall_goods_class 
LEFT JOIN hkgg_emall_goods 
ON hkgg_emall_goods.gc_id=hkgg_emall_goods_class.gc_id GROUP BY hkgg_emall_goods_class.gc_id ; 

這也表明我想要的東西,除了查詢顯示某些行至1甚至他們有沒有相關的產品數量,某些行作爲1個計數時,他們實際上有一個產品相關聯。

我想要你的意見 1)如何解決這個問題 2)我已經在類別表中添加了gc_productcount列。如何將count查詢插入到每行的gc_productcount列中?

INSERT INTO `hkgg_emall_goods_class.gc_productcount` 

當我把它放在select count查詢的前面時,這個查詢不能很好地工作。

P.S.我已經瀏覽了stackoverflow中的其他線程,但運氣不夠好瀏覽類似的解決方案。

預先感謝您。

+0

您是否嘗試過GROUP_CONCAT()?根據http://dev.mysql.com/doc/refman/5.7/en/group-by-functions.html;這個函數返回一個字符串結果和一個組的連接的非NULL值。 – PseudoAj

+0

我還沒試過;你有什麼想法如何將計數查詢結果插入列的每一行? –

+0

小心點你 – Strawberry

回答

0

假設hkgg_emall_goods表有一個主鍵或至少一個唯一的鍵,這就是你想要的。即你不想要COUNT(*),你想要COUNT(hkgg_emall_goods.id)

因此,假設該主鍵是hkgg_emall_goods.id那麼你的查詢將是這樣的:

SELECT 
    hgc.gc_id, 
    COUNT(hg.id) AS productcount 
FROM hkgg_emall_goods_class hgc 
    LEFT JOIN hkgg_emall_goods hg ON hg.gc_id = hgc.gc_id 
GROUP BY 
    hgc.gc_id 
+0

,我將如何能夠將計數查詢插入列? –

+1

@LouisCheng你試圖插入到你加入的同一個表中來獲得計數嗎?這不是更新而是插入?我不清楚你想要完成什麼,以及你期望的結果。 –

+0

我想將查詢列移動到productcount列,因爲productcount是匹配ID的產品數。 是的,我在想作爲更新,但我不知道連接的查詢的表名是什麼.. –