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>]