複数テーブルSELECT*、NULLのカラムに別の値が代入されて出力される
複数テーブルSELECT*、NULLのカラムに別の値が代入されて出力される
こんにちは。
MySQLの経験が未ださほどないので、単純なミスかも知れませんが
少しアドバイスをお願いします。
複数テーブルに対してSELECT *を行うと、
本来NULLになるべきカラムに別の値が入った状態で出力されます。
*同一データベース内です
[Table_A]
tel name links regtime
000000000 サンプルA okwave.jpA 1246247993
000000001 サンプルB okwave.jpB 1246248003
000000002 サンプルC okwave.jpC 1246249258
[Table_B]
subject name body password
サンプル書き込み1 サンプルD サンプル1。ここが本文... 22521343
サンプル書き込み2 サンプルE サンプル2。ここが本文... 4654387368
サンプル書き込み3 サンプルF サンプル3。ここが本文... 13213843843
[Database]
tel デフォルト: NULL, 型: TINYTEXT
name デフォルト: NULL, 型: TEXT
links デフォルト: NULL, 型: TEXT
regtime デフォルト: NULL, 型: INT
subject デフォルト: NULL, 型: TEXT
body デフォルト: NULL, 型: TEXT
password デフォルト: NULL, 型: TINYTEXT
このとき、SELECT * FROM `Database`.`Table_A`, `Database`.`Table_B` LIMIT 0, 30;
を実行して得られた結果が、
tel name links regtime subject name body password
000000000 サンプルA okwave.jpA 1246247993 NULL NULL NULL 22521343
000000001 サンプルB okwave.jpB 1246248003 NULL NULL NULL 22521343
000000002 サンプルC okwave.jpC 1246249258 NULL NULL NULL 22521343
000000000 NULL NULL 1246247993 サンプル書き込み1 サンプルD サンプル1。ここが本文... 22521343
000000000 NULL NULL 1246247993 サンプル書き込み2 サンプルE サンプル2。ここが本文... 4654387368
000000000 NULL NULL 1246247993 サンプル書き込み3 サンプルF サンプル3。ここが本文... 13213843843
このようになってしまいます。
そのテーブルが持たないカラムのうち数字のみが記録されているカラムだけ
勝手に別のテーブルに記録されている値が入った状態で出てきてしまうのです。
IPアドレスを記録してあるカラムの値にはドットが入っているためか、
上には該当せず、NULLはちゃんとNULLとして返ってきます。
他にも、数字以外の文字列を含むカラムのデータはすべて正常に動いています。
いろいろ調べている最中ですが、
phpMyAdminで上記のSQLクエリを実行しても同じ結果が得られたため、
テーブルの使い方が悪いのかクエリに何か足りないのかだと思います。
しかしまだ原因が特定できないので、ご助力いただきたいのです。
よろしくお願いします。
環境は、
MySQL: 5.1.34
文字セット: UTF-8 unicode
照合順序セット: utf8_general_ci
PHP: 5.2.9
お礼
回答ありがとうございました。 リンク提示いただき、大変参考になりましたー