teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

その後

2022/04/28 15:57

投稿

nikuatsu
nikuatsu

スコア177

title CHANGED
File without changes
body CHANGED
@@ -112,3 +112,35 @@
112
112
  ### 補足情報(FW/ツールのバージョンなど)
113
113
  MySQLのバージョンはやや古めな5.7を使用しております。
114
114
  よろしくお願い致します。
115
+
116
+ ### その後
117
+ INNER JOIN で検索結果を絞る、以下の書き方が最速でした
118
+ ```SQL
119
+ FROM my_comments comments
120
+
121
+ INNER JOIN (
122
+
123
+ SELECT comments2.ID
124
+ FROM my_comments comments2
125
+ LEFT JOIN my_tag_holders th2
126
+ ON th2.comments_ID = comments2.ID
127
+ LEFT JOIN my_tags tags2
128
+ ON tags2.ID = th2.tags_ID
129
+
130
+ -- タグ名で指定
131
+ WHERE tags2.tag_name = '指導'
132
+ GROUP BY comments2.count_likes, comments2.ID
133
+ ORDER BY comments2.count_likes DESC, comments2.ID DESC
134
+ LIMIT 0, 20
135
+
136
+ ) AS searched ON searched.ID = comments.ID
137
+
138
+ LEFT JOIN my_tag_holders th
139
+ ON th.comments_ID = comments.ID
140
+ LEFT JOIN my_tags tags
141
+ ON tags.ID = th.tags_ID
142
+
143
+ GROUP BY searched.ID
144
+ ORDER BY comments.count_likes DESC, comments.ID DESC
145
+ LIMIT 0, 20
146
+ ```

2

誤字の訂正

2022/03/29 05:26

投稿

nikuatsu
nikuatsu

スコア177

title CHANGED
File without changes
body CHANGED
@@ -48,7 +48,7 @@
48
48
  (3, 3);
49
49
  ```
50
50
  問題の生じるSELECT文です。これを改善したいです。
51
- (右記でお試しいただます → http://sqlfiddle.com/#!9/b95e945/1 )
51
+ (右記でお試しいただます → http://sqlfiddle.com/#!9/b95e945/1 )
52
52
  ```SQL
53
53
  SELECT comments.ID AS comment_id
54
54
  ,comments.comment

1

誤字の訂正

2022/03/29 05:25

投稿

nikuatsu
nikuatsu

スコア177

title CHANGED
File without changes
body CHANGED
@@ -32,7 +32,7 @@
32
32
  CREATE TABLE my_tags
33
33
  (`ID` int, `tag_kind_id` int, `tag_name` varchar(100));
34
34
  INSERT INTO my_tags
35
- (`ID`, `tag_kind_id`, `tag_name`) # tag_kind_id ( 1=genre | 2=author )
35
+ (`ID`, `tag_kind_id`, `tag_name`) # tag_kind_id=1 なら genre で、tag_kind_id=2 なら author などなど
36
36
  VALUES
37
37
  (1, 2, '鈴木'),
38
38
  (2, 2, '佐藤'),
@@ -48,12 +48,12 @@
48
48
  (3, 3);
49
49
  ```
50
50
  問題の生じるSELECT文です。これを改善したいです。
51
- (右記でお試しいただきます → http://sqlfiddle.com/#!9/fc42c9/1 )
51
+ (右記でお試しいただきます → http://sqlfiddle.com/#!9/b95e945/1 )
52
52
  ```SQL
53
53
  SELECT comments.ID AS comment_id
54
54
  ,comments.comment
55
55
 
56
- # 複数のジャンル
56
+ # ジャンル
57
57
  ,GROUP_CONCAT(
58
58
  CASE WHEN tags.tag_kind_id=1 THEN tags.tag_name
59
59
  ELSE null END