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

kantenna.com 最新更新ページ

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

トラックバック

  • http://www.kantenna.com/cgi-bin/mt/mt-tb.cgi/403
コメント (0)
コメントを投稿

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





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