MYSQLでThe used SELECT statements have a different number of columns


のエラーに見舞われる。

なんてことはない。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)に絞って表示。これで無事エラーが回避できましたとさ。

こういうのは、実際使って一つ一つ解決していくのが、一番の勉強法ですね−。

林 真生 / Hayashi Masuyo

オーストラリア、ブリスベン在住。豪政府認定教育エージェントカウンセラー(QEAC登録番号 I008)。日本では販売業、IT関連業に携わり、海外といえば旅行でヨーロッパやアメリカを訪れる程度。そんな中、友人のススメもあり、2002年ワーキングホリデーでゴールドコーストへ。右も左もわからない中、留学代理店(現職)のWEBサイト制作をする機会に恵まれ、1年間夢中で専門知識を身につける。その後、勤務先のサポートを得て2006年に永住権を取得。2年後、新オフィス開設に伴いメルボルンに転勤、約7年間をメルボルンで過ごす。しかし、QLD州の暖かさが忘れられず(?)、 2015年7月にQLD州に戻り、現在ブリスベンオフィスの留学カウンセラーとして、全力で留学生のサポートを行っています。このカウンセラーに質問する