複数テーブルを結合するとき列名の記述に注意する

mysql> SELECT t_hanbai.shcd,shname,suryo,tanka FROM t_hanbai INNER JOIN t_syohin
 ON t_hanbai.shcd = t_syohin.shcd;
+--------+---------------------+-------+-------+
| shcd   | shname              | suryo | tanka |
+--------+---------------------+-------+-------+
| 100001 | USBメモリー128      |    10 |  2400 |
| 100101 | SDメモリーカード128 |     3 |  2300 |
| 100201 | スマートメディア32  |     5 |  1200 |
+--------+---------------------+-------+-------+
3 rows in set (0.48 sec)

列名だけの記述でもエラーにならないが、実行速度が遅くなる可能性がある。どちらのテーブルにあるのかを調べなければならないからである。

mysql> SELECT t_hanbai.shcd,t_syohin.shname,t_hanbai.suryo,t_syohin.tanka FROM t
_hanbai INNER JOIN t_syohin ON t_hanbai.shcd = t_syohin.shcd;

と書き換えた方が、わずかに動作が早くなる。

mysql> SELECT t1.shcd,t2.shname,t1.suryo,t2.tanka FROM t_hanbai AS t1 INNER JOIN
 t_syohin AS t2 ON t1.shcd = t2.shcd;

と「AS」句を使ってテーブルに別名をつけることができる。