0
0

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.

SQL頑張った話

Posted at

SQLで苦労したはなし

DBに問い合わの際に
1つのテーブルに対して、いくつレコードがついているか数えたくて、
かなり苦労しました。(日本語があっていないかも、、、)

イメージとしては下の図みたいな感じです!
(本当はテーブルが5、6個結合したのですが、簡易的に記載するので今回は2つに)

reserve_names_table

|id|reserve_name|
|:--|:--:|--:|
|1|yusuke|
|2|kosaku|
|3|reo|

reserves_table

|id|reserve_name_id|
|:--|:--:|--:|
|1|1|
|2|1|
|3|2|
|4|2|
|5|3|

期待する出力は。。。

|id|reserve_name_id|
|:--|:--:|--:|
|1|2|
|2|2|
|3|1|

この結果をどう出せばいいか、めちゃくちゃ考え、検索しました。
rerserve_name_idをまとめる

select reserve_name_id, COUNT(*) as rs from reserves GROUP BY reserve_name_id;

からのテーブル結合しました

select id,rs
from
reserve_names r_name
left outer join (select reserve_name_id, COUNT(*) as rs from reserves GROUP BY reserve_name_id) as rs 
on r_name.id = rs.reserve_name_id;

これで期待したデーターが出力できました。
これがわかったら、何個テーブル結合しようが、
応用できるので、とても助かりました!!
(ところどころ記載のある as は書かないとエラー吐きます)

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?