2014-02-14 58 views
0

父表:計數在多行JOIN表

adverts 
- id 

子表:

advertsitems 
- id 
- advertid 
- price 
- quantity 

我試圖計算基礎上,advertid的數量,但不知何故,我不能讓它工作。這是我有:

SELECT adverts.title AS adtitle, 
     adverts.id AS adid, 
     adverts.image AS image, 
     description, 
     price, 
     shipping, 
     customs, 
     createdate 
    FROM adverts 
     LEFT JOIN advertsitems 
        ON adverts.id = advertsitems.advertid 
GROUP BY adid 
ORDER BY adid DESC 

我試圖添加COUNT(advertsitems.quantity),但它不計算。

+0

問題結構不好,但我想你需要'SUM'? – Alexander

回答

0

您正在從advertsitems拉動price字段而沒有進行聚合。這可以從任意一行中抽取價格。以下查詢將其替換爲min()。您可能需要max()avg()

我假設除select以外的所有列都來自adverts表。它們以適當的別名作爲前綴。

最後,我想你想要的是sum(quantity),而不是count(quantity)

SELECT a.title AS adtitle, 
     a.id AS adid, 
     a.image AS image, 
     a.description, 
     sum(ai.quantity) as quantity 
     min(price) as LowestPrice, 
     a.shipping, 
     a.customs, 
     a.createdate 
    FROM adverts a LEFT JOIN 
     advertsitems ai 
     ON a.id = ai.advertid 
    GROUP BY a.id 
    ORDER BY a.id DESC 
+0

嘿,謝謝你的回覆!我會嘗試你的查詢,並讓你更新,我現在要去我的情人,謝謝! – Dylan

+0

感謝您的查詢爲我工作!我有一個下面的問題,張貼在這篇文章上面(太長)。 – Dylan