2

[listings]同じ userid 値に基づいて、[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
4

3 に答える 3

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
于 2013-08-19T08:41:22.113 に答える
2

SELECTサブクエリにa が必要です。

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
于 2013-08-19T08:31:58.817 に答える
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
于 2013-08-19T08:30:51.967 に答える