0

列が添付された次の表があります。

tags
 -t_id (PRIMARY)
 -pg
tag_refs
 -t_id
 -bp_id

ここで、タグの人気度によって並べ替えられたタグの総数を返す MySQL クエリを作成しようとしています。これは、この場合、一意の t_id が tag_refs テーブルで何回表されているかを意味します。

これは結合されたクエリであり、pg 列を使用して各タグの名前/タイトルを一度だけ出力できるタグテーブルからリストを返す必要があり、最も使用されている順に並べ替えられると仮定します。

1行しか返さない次のクエリを試しましたが、希望どおりに並べられているようです。

SELECT *
FROM tags
JOIN tag_refs ON tags.t_id = tag_refs.t_id
ORDER BY COUNT(tag_refs.t_id) DESC
4

2 に答える 2

3

次のように SELECT で集計を行う必要があります。

SELECT tags.pg, COUNT(tag_refs.t_id) AS tag_count
FROM tags INNER JOIN tag_refs ON tags.t_id = tag_refs.t_id
GROUP BY tag.pg
ORDER BY tag_count DESC
于 2013-01-11T18:00:27.117 に答える
2

あなたはGroup by条項がありません

SELECT 
tag_refs.t_id,  COUNT(tag_refs.t_id) 
FROM 
    tags 
JOIN 
    tag_refs 
ON 
    tags.t_id = tag_refs.t_id 
group by tag_refs.t_id
ORDER BY 
    COUNT(tag_refs.t_id) 
DESC

ここでこの条項について少し読んでください

于 2013-01-11T17:59:39.157 に答える