1

現在、3件のお問い合わせを頂いております。PHP では、最初のクエリをループしてから、2 番目のクエリを複数回実行します。

最初のクエリは次のとおりです。

SELECT id FROM users

次に、それらの結果をループする内部で、2番目は

SELECT id AS rid, count(recommendedById) FROM users WHERE id=$id

ここで、$id は最初のクエリの users.id です。

2 番目のループ内で実行される 3 番目のクエリは次のとおりです。

SELECT count(likes) AS likeCounter FROM posts WHERE author_id=$rid

そして、likeCounter は最初のクエリまで合計されます。

これを1つのクエリにまとめることができる人はいますか?

望ましい結果 結果は、彼が推奨したユーザーの数と、彼が推奨したユーザーが投稿に付けた「いいね!」の合計を含む、ユーザーごとの行である必要があります。

4

2 に答える 2

1

あなたはこれを行うことができます:

SELECT u.id AS rid, count(recs.id), count(p.likes) AS likeCounter
FROM users u 
LEFT JOIN posts p ON p.author_id=u.id
LEFT JOIN users recs ON recs.recommendedById=u.id
GROUP BY u.id

ただし、ユーザーには ID がありid、テーブルから使用しusersます。いつも1じゃない?

于 2013-09-16T16:25:41.727 に答える