2013-08-19 126 views
2

我想根據相同的用戶標識值從[listings]中選擇標題列以及列表在[ads]表中出現的次數。計算表中出現次數

結果應該是這樣的:

[title] [cnt] 
Acme 5 
MSFT 10 
GOOG 7 

這不起作用:

select 
    l.title, 
    (COUNT (id) FROM ads WHERE ads.userid = l.userid) as cnt 
from 
    listings l 
INNER JOIN 
    ads a on a.userid = l.userid 
WHERE 
    l.listingtype = 2 

回答

7

我想查詢等答案是在複雜

select 
    l.title, 
    COUNT (a.id) as cnt 
from 
    listings l 
INNER JOIN 
    ads a on a.userid = l.userid 
WHERE 
    l.listingtype = 2 
GROUP BY l.title 
2

你需要一個group by條款才達到它。

事情是這樣的: -

select l.title,COUNT (id) 
(SELECT COUNT (id) FROM ads WHERE ads.userid=l.userid) as cnt 
from listings l 
INNER JOIN ads a on a.userid=l.userid 
WHERE l.listingtype=2 
group by l.title 
2

你在你的子查詢需要一個SELECT

SELECT 
    l.title, 
    (SELECT COUNT (id) FROM ads WHERE ads.userid = l.userid) AS cnt 
FROM 
    listings l 
INNER JOIN 
    ads a on a.userid = l.userid 
WHERE 
    l.listingtype = 2