[前][次][番号順一覧][スレッド一覧]

mysql:11626

From: MAO <MAO <mao@xxxxxxxxxx>>
Date: Sat, 25 Jun 2005 03:30:05 +0900
Subject: [mysql 11626] Re: 3つのテーブルのjoin

梅沢さん
ご回答ありがとうございます。

たしかに、打ちまちがえでした。

ですが、修正したところ、まったく違う結果に。。。。??

SELECT g.gid, g.gname, count( u.uid ) ,sum(i.inum)
FROM (grp g
LEFT join usr u ON g.gid = u.gid) left join item i on g.gid = i.gid
GROUP  BY g.gid;

でやってみたところ、

+-----+---------+----------------+-------------+
| gid | gname   | count( u.uid ) | sum(i.inum) |
+-----+---------+----------------+-------------+
|   1 | チームA |              6 |          48 |
|   2 | チームB |              1 |           3 |
+-----+---------+----------------+-------------+

となってしまいました。


等価結合と外部結合の組み合わせで、

SELECT g.gid, g.gname, count( u.uid ) , sum( i.inum ) 
FROM ( grp g LEFT  JOIN usr u ON g.gid = u.gid ),item i
WHERE g.gid = i.gid
GROUP  BY g.gid

と、してみましたが、これも同様で上記の結果となり、

SELECT g.gid,g.gname, count( u.uid ),sum(i.inum)
FROM grp g
LEFT join usr u ON g.gid = u.gid
LEFT join item i on g.gid=i.gid
GROUP  BY g.gid

と、やっても、上記になります。


+-----+---------+----------------+-------------+
| gid | gname   | count( u.uid ) | sum(i.inum) |
+-----+---------+----------------+-------------+
|   1 | チームA |              2 |          24 |
|   2 | チームB |              1 |           3 |
+-----+---------+------------------------------+
にまったくならず。。。。。。

どこかでダブルカウントされてしまっているのでしょうか?

以上、よろしくお願いいたします。


[前][次][番号順一覧][スレッド一覧]

     11625 2005-06-25 03:01 [梅沢 功 <umezawa@xx] Re: 3つのテーブルのjoin                 
->   11626 2005-06-25 03:30 ┗[MAO <mao@xxxxxxxxxx>]