SQLのON句とUSING句の違い

SQLアンチパターンを読んでいて、そういえばUSINGって使ったことなかったなと思ったので違いを調べた。

ONを使う場合

SELECT *
FROM bugs
INNER JOIN tags ON bugs.bug_id = tags.bug_id;

USINGを使う場合

SELECT *
FROM bugs
INNER JOIN tags USING (bug_id);

USINGは結合元・結合先の両テーブルにbug_idという名前のカラムがあれば使える。 bugsがid、tagsがbug_idである場合は使えない。