MySQLエラー「Column 'カラム名' in field list is ambiguous」

| 2008年01月15日 12:09

テーブルを結合して出力する場合、どちらのテーブルのカラムか指定しないとエラーになる。

サンプルデータ

test1
id name
1 google
2 yahoo
3 MSN

test2
id url
1 http://www.google.co.jp/
2 http://www.yahoo.co.jp/
3 http://jp.msn.com/

「Column 'カラム名' in field list is ambiguous」エラーとなるSQL


SELECT
id, name, url
FROM test1
INNER JOIN test2 ON test1.id = test2.id

なぜエラーになるのかは下記SQLを実行するとわかりますが「id」が重複していてどちらの「id」なのかわからないので。


SELECT
*
FROM test1
INNER JOIN test2 ON test1.id = test2.id

上記を実行した場合の結果

id name id url
1 google 1 http://www.google.co.jp/
2 yahoo 2 http://www.yahoo.co.jp/
3 MSN 3 http://jp.msn.com/

確かにIDが重複してますね。エラーが出ないようにするにはどちらの「ID」かを指定してあげればよい。


SELECT
test1.id, name, url
FROM test1
INNER JOIN test2 ON test1.id = test2.id

別名設定前でも大丈夫なかんじ。


SELECT
a.id, name, url
FROM test1 a
INNER JOIN test2 b ON a.id = b.id
初めてのSQL

著者 : アラン ブールー / 金額 : ¥ 2,520

MySQLエラー「Column 'カラム名' in field list is ambiguous」タグ:

トラックバック
  • http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/204
コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)





この情報を登録しますか?

このサイトは次のライセンスで保護されています。

Creative Commons License

IT業界、エンジニア関連の求人
Web業界に精通したエージェントなので、希望に合った仕事、プロジェクト、雇用形態を紹介してくれてしっかりと転職活動をサポートしてくれます。
初心者のみ採用!【スノーグラス】WEB系エンジニア募集
初心者のみのweb系エンジニア求人!なんでだ?そろそろ転職考えてるのでここ行ってみようかな・・・
Twitter Updates