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

mysql:5593

From: Hidehiko TAKAHASHI <Hidehiko TAKAHASHI <Hidehiko.Takahashi@xxxxxxxxxx>>
Date: Mon, 3 Jun 2002 19:52:45 +0900
Subject: [mysql 05593] Re: 差集合について

Koshibaさん、madaraさん、otsukaさん、お返事ありがとうございました。
Accessはつかったことあるのですが、SQLは初めてなので四苦八苦しております。

教えていただいた方法でもうちょっとのところまでできました!
A left join B on をつかってAにあるものすべてと、Bを比べて、そこからBの
NULL部分を抜き出すという方法ですよね。それで完成しそうなのですが、こまった
問題があります。

Aはマスターテーブルだとおもってください。

Table A
Food
-------
Apple
Banana
Orange
-------

Table B
User  Food
------------
A   | Apple
A   | Orange
B   | Banana
B   | Orange
------------

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

先にTableBのユーザーをAに絞ってから、LEFT JOINすることってできるのでしょう
か?

長くなってしまってすいません。
--
Hidehiko Takahashi
ソニーエリクソンモバイルコミュニケーションズ(株)

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

      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]