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

留学カウンセラー歴22年。オーストラリア、ブリスベン在住。豪政府認定教育エージェントカウンセラー(QEAC登録番号 I008)。

2002年にワーキングホリデーでゴールドコーストへ渡航し、現在の勤務先である留学代理店で、WEBサイト制作に関わったことをきっかけに留学業界に入りました。その後、2006年に永住権を取得。メルボルンオフィスで約7年間勤務した後、2015年にクイーンズランド州へ戻り、現在はブリスベンオフィスで留学生のサポートを行っています。

これまで多くの留学生を見てきて感じるのは、留学で大切なのは「学校に入ること」だけではないということです。現地でしっかり学び続けられるか、思い通りにいかない時にどう乗り越えるか、そしてその経験をその先の人生にどうつなげるか。その部分まで考えることが、本当に大切だと思っています。

高校生の大学進学、大学生の休学・認定留学、社会人のキャリアチェンジ、保護者の方からのご相談まで、留学の目的や不安は一人ひとり違います。学校名やコース名だけで判断するのではなく、英語力、成績、費用、将来の目標、現地での生活まで含めて、現実的に続けられる留学プランを一緒に考えていきます。

留学を決めること自体、大きなチャレンジです。ただ、せっかくオーストラリアに来るのであれば、そこからさらに一歩踏み込んで、現地でいろいろなことに挑戦してほしいと思っています。自分は、そうやって挑戦する留学生を、ブリスベンの現地カウンセラーとして全力で応援します。このカウンセラーに質問する