私はINNER JOINを使う時のカラム名の指定方法を勘違いしていました。
大した話ではないですが、備忘録を兼ねて学んだことをシェアします。
使用するテーブルが1つの時
例:SELECT カラム名 FROM member_table WHERE name=taro
こんな時のカラム名は、
カラム名
で指定します。
とても単純です。
使用するテーブルが2つ以上の時
さて、ここからが本題です。
実行するクエリで、INNER JOINなどで2つ以上のテーブルが出てくる場合は少しの知識が必要です。
基本は先ほどと同様、
カラム名
で問題ありません。
しかし、例えば「id」というカラム名を「table_a」というテーブルでも、「table_b」というテーブルでも使っている場合は
テーブル名.カラム名
のように、どっちのテーブル名なのかをカラム名の前に表記してあげる必要があります。
勘違いしていたこと
FROM table_a INNER JOIN table_b
私は最初、こんな時に「table_a」はこのクエリ上でメインだから「カラム名」だけで良くて、「table_b」はこのクエリ上でメインだから「table名.カラム名」と指定しなければいけないのかなぁと勝手に思っていたのですが、そんなことありませんでした。
重複するカラム名があるかないかで、それぞれのカラム名の指定方法を決めてあげればいいのでした。
コメント