0

ウェブサイトの新しいバージョンのために、ホームページに「トップ ユーザー」セクションを作成しています。これにより、人々はさまざまなカテゴリでユーザーに投票できます。このすべての情報は、MySQL データベースの 2 つのメイン テーブルに格納されます。1 つのテーブルには情報 (id*autogenerated*、ユーザー名、追加日など) があり、もう 1 つのテーブルにはレート (id*autogenerated*、linkID、rowAvg、avg、avg2 など) があります。linkIDレート テーブルの は、情報テーブルの に対応しますid。クエリの仕組みは、 を介してクエリを実行し、rate_table最も高い平均で並べ替えてから、最初の 10 件の結果を選択します。次にlinkID、その行の を使用して、そのユーザーの実際の情報をinfo_table. これは、各ユーザーが 1 つのレートしか持っていない限り、問題なく適切です。ユーザーが 2 つ以上のレートを持っていて、両方のレートが正の場合、クエリはそれらの両方を選択し、2 つの行のそれぞれの情報を取得して、同じユーザーであっても 2 人の異なるユーザーとして表示します。人。2 人の異なる人物として表示するのではなくrate_table、同じものに対して複数のレートがある場合に、それらを平均してクエリに知らせるにはどうすればよいでしょうか。linkIDそれぞれを配列に挿入することを考えlinkIDていたので、その後選択された行ごとに、それがlinkIDはすでに配列に含まれています。そうでない場合は挿入し、ある場合はそれらを平均して配列に保存し、配列を使用してホームページのテーブルに入力します。私はこれを考えすぎているように感じます。これが少し混乱している場合は申し訳ありません。さらに情報が必要な場合は、お知らせください。

PS私はまだMySQLクエリの使い方を学んでいるので、これについて完全に間違った方法で行っていて、私の言っていることを理解するのに最後の数分を費やした場合はお詫び申し上げます:P

PPS もう MySQL_Query を使用するべきではなく、準備済みステートメントを実行する必要があることはわかっています。MySQL クエリをマスターしたいのは、iOS の FMDB データベースが使用するものであるためです。次に、準備されたステートメントの学習に進みます。

4

1 に答える 1

0

MySQL Aggregate Functionsのいくつかを見てください 。

AVG()あなたが探しているものかもしれません。1 つの結果の平均はまさにその結果なので、それでも機能するはずです。GROUP BYグループ化された行で集計計算を実行するには、一意にする必要がある列で句を使用します。

于 2013-03-24T04:05:21.013 に答える