データベースに 3 つのテーブルがあります。以下の構造を参照してください。
ユーザー
uid | fname | date_joined
---------------------------------
1 | john | 2013-08-25 01:00:00
2 | rock | 2013-08-26 01:00:00
3 | jane | 2013-08-27 01:00:00
質問
qid | uid
----------
1 | 1
2 | 1
3 | 2
4 | 3
5 | 3
6 | 1
7 | 1
8 | 2
9 | 2
フォロワー
fid | qid
---------
1 | 2
2 | 1
3 | 2
4 | 1
5 | 2
6 | 3
7 | 2
user テーブルには、すべてのユーザー関連フィールドが
含まれます question テーブルには、外部キー uid を持つすべての質問関連データが含まれます
フォロワー テーブルには、質問が何回フォローされたかの情報が格納されます
クエリに返してもらいたいのは次のとおりです。
unique uid,
fname
question count for each user
follower count for each user
クエリを作成しましたが、正常に動作し、必要に応じてレコードを返しますが、フォロワー数は常に 0 です。これが私のクエリです。
SELECT
u.uid, u.fname, u.date_joined ,
(SELECT COUNT(*) FROM questions WHERE questions.uid = u.uid) AS question_count,
(SELECT COUNT(*) FROM followers WHERE followers.qid IN (
SELECT GROUP_CONCAT(qid) FROM questions WHERE questions.uid = u.uid
)
) AS follow_count
FROM epc_user AS u
ORDER BY follow_count DESC, question_count DESC, date_joined DESC
いくつかの異なる組み合わせを試しましたが、どれもうまくいきませんでした。間違ったクエリを書いているか、別のサブクエリでサブクエリを使用できない可能性があります。可能かどうか、可能であれば知りたいだけです