みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

テーブル結合で、結合フィールドをWHERE句に用いた時に、結合フィールドのデータがNULLになってしまう。

MySQL 4.0.24-standard + PHP Version 4.3.11 を使用しています。

下記のような table_a, table_b があり、idフィールドで外部結合させています。

table_a
id|value
-------
1 | 0
2 | 1

table_b
id|name
-------
1 | A
2 | B

SELECT * FROM table_a NATURAL LEFT OUTER JOIN table_b;

result
id|value|name
--------------
1 | 0 | A
2 | 1 | B

しかし、下記のクエリでは、このようにidがNULLになってしまいます。

SELECT * FROM table_a NATURAL LEFT OUTER JOIN table_b WHERE table_a.id = 1;

result
id |value|name
--------------
NULL| 0 | A

以下のような結果を得たいのですが、どうすれば良いのでしょうか?

result
id|value|name
--------------
1 | 0 | A

投稿日時 - 2005-12-27 01:48:50

QNo.1861578

すぐに回答ほしいです

質問者が選んだベストアンサー

素直に。
select table_a.id,value,name from table_a left join table_b on table_a.id = table_b.id where table_a.id = 1;

投稿日時 - 2005-12-27 10:24:37

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

MySQLのバグのようです。
ver 5.0.15では、あなたの期待通り動きます。

投稿日時 - 2005-12-29 08:53:10

あなたにオススメの質問