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]