1

いくつかの統計を取得しようとしています。3 つの異なるテーブルからの総リンク数、ユーザー数、ビュー数。何をしようとしています:

SELECT SUM(p.views), COUNT(c.id), COUNT(u.id)
FROM studenkel_userprefs as p, studenkel_content as c, studenkel_users as u

3 つの異なるクエリで個別に実行すると、問題なく動作しますが、結果が必要な数の数千倍になります。何らかの方法で互いに増殖していると思いますが、ヒントはありますか?

ありがとう

編集:ありがとう、あなたの助けに本当に感謝し、それを整理しました。

4

3 に答える 3

2

from で行っていることは、基準のない暗黙的な内部結合と呼ばれます。

つまり、最終的なビューにp.rows * c.rows * u.rows行があるため、奇妙な結果が得られます。

質問が 3 つある場合は、一度にまとめてではなく、別々に質問してください。

あるいは、本当に 1 つのリクエストだけが必要な場合は、次のような醜いものを使用できます。

SELECT
  SELECT SUM(views) FROM studenkel_userprefs as "sum_userprefs",
  SELECT COUNT(id) FROM studenkel_content as "cnt_content",
  SELECT COUNT(u.id) FROM studenkel_users as "cnt_users"
FROM DUAL;
于 2013-10-22T15:22:27.940 に答える