🐘
活用しよう、JOINの結合条件[postgreSQL]
JOIN ON
select hoge.piyo, hogera from hoge
join fuga on hoge.piyo = fuga.piyo;
って書くのだるくないですか。そうじゃない人はブラウザバックしてください。
そうなんです。解決策はあるんです。
JOIN USING
select piyo, hogera from hoge
join fuga using(piyo);
おんなじキーを持つテーブルの結合は"リレーショナル"データベースの要です。
using句を使うと結合する左右のテーブルの指定カラムで結合します。
注目点はhoge.piyo
がpiyo
になっているところです。
どういうことかというと、using
は一つのカラムにまとめるのでキー重複エラーが出ないのです。
ちなみにusing()
の後にas
をつけると、結合カラムが指定名のテーブルのものとして参照できます。
NATURAL JOIN
select piyo, hogera from hoge
natural join fuga;
でも、using句書くのも少しだるいですよね。
そんなあなたにはこれ。左右テーブルの同じ名前のカラムを全部結合条件として結合します。
共通の列名がない時には、join on true
と同じ結果になるようなので注意。
参考
みんなもドキュメントに一度は目をとうそう。(できてない)
Discussion