2011-07-19 3 views
-1

のカウント数は、私が「最も気に入っ」質問セクションを作りたいけど、「好き」をしている、とにかくMySQLの - ID

enter image description here

のは、私が(例として)このデータベースがあるとしましょうしたがって異なるデータベーステーブルlikes。とにかく、idの質問と同じことがquestion_idにあります...しかし、どのようにMYSQLクエリでそれらを数えますか?

ありがとうございました。質問者のIDに、あなたのテーブル間のinner join、およびgroup byを使用してはどう

+0

あなたが試した質問をする必要があります。あなたは実際のカウントをしたいですか?あなたはIDに相当するようなものが必要ですか? –

答えて

2

:これはあなたにそれらのそれぞれについて、10最も気に入った質問に、取得する必要

select question.id, question.question_title, count(*) as num_likes 
from question 
    inner join likes on likes.question_id = question.id 
group by question.id 
order by count(*) desc 
limit 0, 10 

、それが好きだった回数。

+0

「INNER JOIN」では、まだ投票がないときは何も表示されない可能性があります。 – rabudde

+0

true;私は好きではない質問が好きな質問の多くではないと思っていました。彼が好きなことに応じて、「内部」または「左」の結合を使用するOPまでです。ありがとうございます:-) –

+0

確かに、あなたは正しいです、好きではない質問は、ほとんどの好きな質問に属していません:)しかし、私は(新しいWebアプリケーションを設定するとき) Googleはコンテンツを好きです^^) – rabudde

1
SELECT x.id,x.question_title,x.desc,x.category,COUNT(*) AS likes FROM question x LEFT JOIN likes y ON x.id=y.question_id GROUP BY x.id,x.question_title,x.desc,x.category ORDER BY COUNT(*) DESC