私は3つのテーブルを持っている、私はテーブルのいずれかからすべてのデータを選択し、何回データの特定の行がリンクされている他の2つのテーブル。複数のテーブルから2つのテーブルから複数のCOUNT()をLEFT JOIN
したがって、site_projectsのすべてのデータを選択します。次に、site_project_members WHERE site_projects
のCOUNTを返します。 id
= site_project_members
。 pid
また、site_project_tasks WHERE site_projects
のCOUNTを返します。 id
= site_project_members
。 pid
私は意味があると思いますが、質問には正しいと思われます。それは問題なくデータベース(MySQL)をquerysします。 を除いて、両方のカウントの合計を両方のものとして返します。
:id | title | desc | start | deadline | progress
1 | Project 1 | a project | 1321748906 | 1329847200 | 20
site_project_membersここ
id | pid | uid | img | hidden
1 | 1 | 1 | 1 | 0
2 | 1 | 2 | 2 | 0
site_project_tasks
id | pid | desc | completed
1 | 1 | Task 1 | 1
1 | 1 | Task 2 | 0
site_projectsは私のクエリです(テーブル構造下記参照) 0
私が得る結果は次のとおりです。助けることができるS誰でも:
id | title | desc | progress | start | deadline | members | tasks
1 | Project 1 | a project | 20 | 1321748906 | 1329847200 | 4 | 4
「4」の値の両方は、しかし、彼らはありません2.すべきですか? 感謝
おかげで、 ダン本当にトリックを行う必要があります
これは、あなたが間違って集計しているためです! MySQLは、他のRDBMSとは異なり、このような集約を実行することを止めません。基本的には、 'GROUP BY'を指定していないので、ランダムな値を返します。 – JNK