muroiです。
今日のデータベースの研修では、結合の続きの学習をしました。以下リンクが前回の内容となります。
データベース テーブルの結合
データベース テーブルの結合2
今回も前回の内容に引き続きテーブルの結合についての学習と練習をメインにやっていきました。
今回の内容で重要な点
- 必要のないテーブルの結合はしない方が良い。する事によってパフォーマンスの低下につながってしまうため。
- 結合をする順番(テーブルの順)によって結果は変わってきてしまう。(必要なデータはどれか適切に判断して結合は行う)
- 結合によってできた表には表別名をつける事はできない。
- 余計なテーブルの結合は結果として行が増えてしまう事となる。
また今回は複数の表を結合すると同時にグループ化をしていたのですが、GROUP BY句に書かず列を表示する方法があります。
まず以下の例ではグループ化列を2つ指定しています。
SELECT
hoge.hogeID
,hoge.hogeName AS 名前
FROM
hogeTable AS hoge
JOIN
hugaTable AS huga
ON
hoge.hogeID = huga.hogeID
GROUP BY
hoge.hogeID
,hoge.hogeName
;
上記の方法でGROUP BY句を2つ指定したのですが、これでは表示のためだけに『hogeName』列をグループ化していて、後々見て何のためにグループ化しているか分からない事も出てきてしまいます。
これを『hogeID』列だけでグループ化する場合の書き方があります。
SELECT
hoge.hogeID
,MAX(hoge.hogeName) AS 名前
FROM
hogeTable AS hoge
JOIN
hugaTable AS huga
ON
hoge.hogeID = huga.hogeID
GROUP BY
hoge.hogeID
;
上記のようにMAX関数を利用した方法を使う事によりGROUP BY句で指定する列は一つだけで表示ができました。
実際にこの方法については前回の研修で学習したはずであったのに忘れていました・・。
業務でもこの方法を使う事は多々あるそうなのでしっかりと復習して覚えておかねばなりません!
(08/07/16 irisawa追記)
お待たせしました。動画上がりました。
part.1
part.2

コメントをどうぞ