- ベストアンサー
テーブル結合で、結合フィールドを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
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
素直に。 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;
その他の回答 (1)
- chukenkenkou
- ベストアンサー率43% (833/1926)
回答No.2
MySQLのバグのようです。 ver 5.0.15では、あなたの期待通り動きます。