HOME>WEBプログラム覚書>MySQLエラー「Column 'カラム名' in field list is ambiguous」

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

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

サンプルデータ

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

SQL

  1. SELECT
  2. id, name, url
  3. FROM test1
  4. INNER JOIN test2 ON test1.id = test2.id
  5.  

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

SQL

  1. SELECT
  2. *
  3. FROM test1
  4. INNER JOIN test2 ON test1.id = test2.id
  5.  

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

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」かを指定してあげればよい。

SQL

  1. SELECT
  2. test1.id, name, url
  3. FROM test1
  4. INNER JOIN test2 ON test1.id = test2.id
  5.  

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

SQL

  1. SELECT
  2. a.id, name, url
  3. FROM test1 a
  4. INNER JOIN test2 b ON a.id = b.id
  5.  
投稿日 2008年1月15日 12:09
カテゴリ MySQL
タグ エラーコード | データベース
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1138

コメント

コメントする
Name
Email Address
URL