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

mysql:5595

From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Tue, 4 Jun 2002 06:16:12 +0900
Subject: [mysql 05595] Re: 差集合について

とみたです。

On Mon, 3 Jun 2002 19:52:45 +0900
Hidehiko TAKAHASHI <Hidehiko.Takahashi@xxxxxxxxxx> wrote:

	〜〜
> となりまして、教えていただいたLEFT JOINによってNULLを導き出せばBananaが算
> 出できるかとおもいます。ところが、ユーザーはたくさんいるので、まずTable
> BのユーザーからAを算出してから、そこからLEFT JOINをしたいのです。ただ、
> MySQLでは()をネストできないようなので、最後にWHERE User=Aとやっても、正
> しい値が帰りません。上の場合はEmpty setといわれてしまいます。(ユーザーAと
> ユーザーBを含めると、すべての食べ物を食べているので)

SQL が2文になりますが、こんなんでどうでしょう。

create temporary table c select distinct user, a.food from a,b;
select c.user,c.food from c left join b using (user,food) where b.user is null;

はじめにユーザ名とすべての食べ物の組み合わせのリストを作って、それと実
際に食べたものを比較して、食べてないものだけを出力してます。

# ユーザ数や食べ物の数が多いと、テーブル c が大きくなりすぎて、実用に
# 耐えられないかもしれませんが…

-- 
とみたまさひろ <tommy@xxxxxxxxxx>
日本MySQLユーザ会 http://www.mysql.gr.jp

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

      5589 2002-06-03 14:41 ["Hidehiko Takahashi"] 差集合について                          
      5590 2002-06-03 16:17 ┣["Koji Koshiba" <koss]                                       
      5591 2002-06-03 16:34 ┣[madara <madara@xxxxx]                                       
      5592 2002-06-03 18:48 ┗["otsuka" <otsuka03@x]                                       
      5593 2002-06-03 19:52  ┗[Hidehiko TAKAHASHI <]                                     
      5594 2002-06-03 22:55   ┣["otsuka" <otsuka03@x]                                   
->    5595 2002-06-04 06:16   ┗[とみたまさひろ <tomm]                                   
      5596 2002-06-04 10:34    ┣[Hidehiko TAKAHASHI <]                                 
      5598 2002-06-04 11:47    ┃┣[Tomoyuki Ishino <ish]                               
      5599 2002-06-04 13:36    ┃┃┣[Hidehiko TAKAHASHI <]                             
      5601 2002-06-04 22:54    ┃┃┗[とみたまさひろ <tomm]                             
      5600 2002-06-04 22:52    ┃┗[とみたまさひろ <tomm]                               
      5597 2002-06-04 10:40    ┗[madara <madara@xxxxx]