KANTENNA.COM

Solarized

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

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

SQL
  1.  SELECT
  2.  *
  3.  FROM test1
  4.  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」かを指定してあげればよい。

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

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

SQL
  1.  SELECT
  2.  a.id, name, url
  3.  FROM test1 a
  4.  INNER JOIN test2 b ON a.id = b.id
MySQL 徹底入門 第2版
作者:松信 嘉範 | 価格:¥ 3,654

トラックバック(0)

コメント

コメントする
Name
Email Address
URL
TIME LINE
2012
02.08

[Ubuntu11.10]Winows XPユーザーがUbuntuを使ってみて

Windows XPとUbuntuのデュアルブート環境にしてみておもったこと。

2012
02.03

[jQuery]closest()とparents()

今から16年前Netscapeブラウザのソースコードの公開方法の会議の中で、初めてオープンソースという言葉が使われた今日、 みなさんいかがお過ごしでしょうか。

今回の投稿はそれとは関係のないjQueryのparents()とclosest()が 似てたので何が違うのか試した時のメモです。

2012
02.01

[jQuery Mobile]初期化イベントメモ

jQuery Mobileは読み込まれてから

mobileinit -> pagebeforecreate -> pagecreate -> pageinit

の順番でイベントが発生する。

2012
02.01

[WordPress]管理画面のフッタのフィルタとアクション。

時間も時間なので、あまり使用頻度の高くない微妙なネタを。

会員制サイトなどで不特定多数の人にログインさせる場合、フッタのバージョン情報は隠しておきたかったり、 こじゃれたメッセージを表示したいときとか使うアクションとフィルタ。

2012
01.28

[WordPress] ブログの情報を取得する方法とノーキャッシュ疑惑

ブログのget_bloginfo()で取れないデータが必要な場合に使うもの。

2012
01.26

[jQuery Mobile]ダイアログ

jQuery Mobileにおけるダイアログの扱いはウインドウではなくページ。 なので通常のページと同様に扱える。ダイアログウインドウを出す。じゃなくダイアログページに遷移する。的な。

2012
01.25

[Ubuntu11.10]Ubuntuのインストール後の設定

インストール完了後の環境構築。PC起動時いちいちBIOSからブートドライブ選んで ブートするのかと思ってたら起動時にOS選択画面が出てくる。

すばらしいですね。

2012
01.24
2012
01.23

MinGW+Mintty+Git

MinGW+Mintty+Gitをやろうとして失敗に終わった。このエントリーには収穫できるものはありません。