0

この構造を持つ「いいね」という名前のテーブルがあります: id - 自動生成された番号、bywho - 誰かが好きなユーザー、識別子 - 好きなユーザー、tip - 好きなカテゴリ

最も好きなユーザー(識別子)のリストを作成しようとしていますが、私の問題は次のとおりです。

リスト内の計算された列としていいねの量を生成する必要があります...

ここに私が試したものがあります:

SELECT u.bywho,u.identifier COUNT(DISTINCT inv_by.identifier) AS lol
FROM  likes u
LEFT  JOIN likes inv_by ON u.identifier = inv_by.identifier
WHERE inv_by.identifier= $this->who AND tip='profil' 
GROUP BY u.identifier ORDER BY lol DESC
4

1 に答える 1

0

コンマが欠落しており、u.bywho によってグループ化が行われていないため、これは機能していないと思います。これを行う際の問題は、いいねされた人や誰がいいねしたかによってカウントの内訳が表示されることです。人が一度しか好きになれないと仮定すると、カウントは常に 1 になります。

別の返信で言及されているように、select 句の u.identiier の後にコンマを追加してみてください。それでもうまくいかない場合は、u.who でグループ化してみてください。それが期待どおりに機能しない場合は、もう少し期待していることを説明してください。select句から何かを削除したいと思うかもしれません。select句に残っている非集計は、グループ化する必要があります。

于 2012-08-23T11:17:08.077 に答える