のエラーに見舞われる。
なんてことはない。UNIONの使い方が分かっていなかっただけ。はじめは、
Select * From table_1 Where id=1
UNION
Select * From table_1 Where data=2
みたいにしていたから、問題なく表示していたんだけど、カラム数(フィールドの数)が違うTABLEを加えたらエラーになった。ちなみに、こんな感じ。
Select * From table_1 Where id=1
UNION
Select * From table_1 Where data=2
UNION
Select * From table_2 Where id=1
どうやら、UNIONはカラム数が違うテーブルを加えるとおかしくなってしまうらしい。見てみると確かに、table_1は、10カラムのテーブル、table_2は、15カラムのテーブルだった。つまり、表示するフィールドを決めうちすればいいわけだ。ということで、
Select concat(last,,first) as data1,id1 as data2,id2 as data3 From table_1 Where id=1
UNION
Select concat(last,,first) as data1,id1 as data2,id2 as data3 From table_1 Where data=2
UNION
Select concat(lastname,,firstname) as data1,test1 as data2,test2 as data3 From table_2 Where id=1
というように、表示するカラムを3つ(data1,data2,data3)に絞って表示。これで無事エラーが回避できましたとさ。
こういうのは、実際使って一つ一つ解決していくのが、一番の勉強法ですね−。