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

mysql:4277

From: (遠藤 俊裕) <<endo_t@xxxxxxxxxx>>
Date: Mon, 03 Sep 2001 21:49:40 +0900
Subject: [mysql 04277] Re: 2テーブル間で不一致のデータを抽出したい!

遠藤です。

yasushi fujiwara さんは書きました:
>私の書いたSQLでもうまくいってほしいですネ!
>SELECT DISTINCT employee.emp_cd ,employee.last_name_j as name FROM employee, administrators 
>WHERE ( (employee.emp_cd <> administrators.emp_cd) ) 
>これて、Bugなんでしょうネ。

当然の結果だと思いますよ。

mysql> insert into a values ('3');
Query OK, 1 row affected (0.00 sec)

mysql> insert into e values ('3', '白鳥 麗子');
Query OK, 1 row affected (0.00 sec)

mysql> select * from a;
+------+
| cd   |
+------+
| 1    |
| 3    |
+------+
2 rows in set (0.00 sec)

mysql> select * from e;
+------+-----------+
| cd   | name      |
+------+-----------+
| 1    | 長島 茂雄 |
| 2   | 鈴木 一郎 |
| 3    | 白鳥 麗子 |
+------+-----------+
3 rows in set (0.00 sec)

mysql> select distinct e.cd, e.name from e, a where e.cd <> a.cd;
+------+-----------+
| cd   | name      |
+------+-----------+
| 2   | 鈴木 一郎 |
| 3    | 白鳥 麗子 |
| 1    | 長島 茂雄 |
+------+-----------+
3 rows in set (0.01 sec)

mysql> select * from e, a where e.cd <> a.cd;
+------+-----------+------+
| cd   | name      | cd   |
+------+-----------+------+
| 2   | 鈴木 一郎 | 1    |
| 3    | 白鳥 麗子 | 1    |
| 1    | 長島 茂雄 | 3    |
| 2   | 鈴木 一郎 | 3    |
+------+-----------+------+
4 rows in set (0.01 sec)

ですから、ご希望の処理を行うには以下のようにします。

mysql> select * from e left join a on e.cd = a.cd where a.cd is null;
+------+-----------+------+
| cd   | name      | cd   |
+------+-----------+------+
| 2   | 鈴木 一郎 | NULL |
+------+-----------+------+
1 row in set (0.01 sec)

これは以下の理由からです。

mysql> select * from e left join a on e.cd = a.cd;
+------+-----------+------+
| cd   | name      | cd   |
+------+-----------+------+
| 1    | 長島 茂雄 | 1    |
| 2   | 鈴木 一郎 | NULL |
| 3    | 白鳥 麗子 | 3    |
+------+-----------+------+
3 rows in set (0.01 sec)

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

      4270 2001-09-03 16:18 ["yasushi fujiwara" <] 2テーブル間で不一致のデータを抽出したい!
      4271 2001-09-03 16:54 ┣[<endo_t@xxxxxxxxxx> ]                                       
      4272 2001-09-03 17:52 ┣[madara <madara@xxxxx]                                       
      4273 2001-09-03 19:39 ┃┗["yasushi fujiwara" <]                                     
      4274 2001-09-03 19:54 ┃ ┣[fuji <fujiyama@xxxxx]                                   
->    4277 2001-09-03 21:49 ┃ ┗[<endo_t@xxxxxxxxxx> ]                                   
      4278 2001-09-03 23:02 ┃  ┗["yasushi fujiwara" <]                                 
      4289 2001-09-09 08:15 ┃   ┗[<moeru@xxxxxxxxxx>  ]                               
      4290 2001-09-10 13:08 ┃    ┣[fuji <fujiyama@xxxxx]                             
      4292 2001-09-10 21:23 ┃    ┃┗[<moeru@xxxxxxxxxx>  ]                           
      4293 2001-09-10 22:07 ┃    ┃ ┣[<endo_t@xxxxxxxxxx> ]                         
      4294 2001-09-10 22:19 ┃    ┃ ┣[とみたまさひろ <tomm]                         
      4295 2001-09-10 22:41 ┃    ┃ ┗[fuji <fujiyama@xxxxx]                         
      4298 2001-09-12 00:23 ┃    ┃  ┗[<moeru@xxxxxxxxxx>  ]                       
      4291 2001-09-10 13:31 ┃    ┗[madara <madara@xxxxx]                             
      4275 2001-09-03 19:54 ┗[Tomohiro 'Tomo-p' KA]