10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MySQLのUsingを雑に調べた

Posted at

TL;DR

たまたまみかけたSQLでUSING(hoge_id)という記述をみて「そういえばUSING使ったことないな?」と思ったので雑に調べてみた。

結論

USINGFROM [テーブル名A] JOIN [テーブル名B] ON [テーブル名A].id = [テーブル名B].idとだいたい等価。
違いがあるとするならUSINGを使うときは両方のテーブルに同じ名前のカラム(上の例だとid)が存在している必要があるということだろうか?

なので[テーブル名A].id=[テーブル名B].a_idとかだとUSINGは使えない…ということでいいのかな。

参考

あとがき

JOIN ONで書くのに比べて簡単に表現できるのでメリットはありつつもUSINGとONが混在すると妙な気持ち悪さを感じる。
そもそも入り混じって気持ち悪いSQLになってるのは設計が悪いというだけの話しなのかもしれないが。

ぼくがUSINGを使うとしたら中間テーブルを経由して多対多の関係性を解消するときに限定するかな…という気持ちになった。
冗長だけどなにやってるかわかりにくいSQLを書くよりはマシなのかなと考えている。

10
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?