質問編集履歴

3

追記

2022/06/15 14:03

投稿

nikuatsu
nikuatsu

スコア177

test CHANGED
File without changes
test CHANGED
@@ -124,3 +124,8 @@
124
124
 
125
125
  (MySQL8.0 ならば「Join-Order オプティマイザヒント句」なるものが有効っぽい(?)というのは [こちらの記事](https://gihyo.jp/dev/serial/01/mysql-road-construction-news/0097) で見つけたですが…)
126
126
 
127
+ ### 追記
128
+ 検索結果は上記のように INNER JOIN を用いて`searched`として得たいです。
129
+ `searched`を作らず、WHERE で取得する方法も試したのですが、それは取得に時間がかかったためです。
130
+
131
+

2

コードの訂正

2022/06/15 13:59

投稿

nikuatsu
nikuatsu

スコア177

test CHANGED
File without changes
test CHANGED
@@ -15,7 +15,7 @@
15
15
 
16
16
  サブクエリ`searched`で`ORDER BY fruits2.count_likes DESC`をかけていいね順にしているのに、なぜでしょうか?
17
17
 
18
- 以下実行サンプル:[http://sqlfiddle.com/#!9/52257e/1](http://sqlfiddle.com/#!9/52257e/1)
18
+ 以下実行サンプル:[http://sqlfiddle.com/#!9/52257e/2](http://sqlfiddle.com/#!9/52257e/2)
19
19
  ```SQL
20
20
  CREATE TABLE my_fruits
21
21
  (`ID` int, `count_likes` int(100), `content` varchar(100));
@@ -67,7 +67,7 @@
67
67
  (10, 7),(10, 10);
68
68
  ```
69
69
  ```SQL
70
- SELECT fruits.ID AS comment_id
70
+ SELECT fruits.ID AS fruits_id
71
71
  ,fruits.count_likes
72
72
  ,fruits.content
73
73
  ,GROUP_CONCAT(

1

コードの訂正

2022/06/15 13:58

投稿

nikuatsu
nikuatsu

スコア177

test CHANGED
File without changes
test CHANGED
@@ -14,6 +14,8 @@
14
14
  いいね順が目的なので、10,6,8,1 という順序にしたいのです。
15
15
 
16
16
  サブクエリ`searched`で`ORDER BY fruits2.count_likes DESC`をかけていいね順にしているのに、なぜでしょうか?
17
+
18
+ 以下実行サンプル:[http://sqlfiddle.com/#!9/52257e/1](http://sqlfiddle.com/#!9/52257e/1)
17
19
  ```SQL
18
20
  CREATE TABLE my_fruits
19
21
  (`ID` int, `count_likes` int(100), `content` varchar(100));
@@ -32,21 +34,21 @@
32
34
  (10, 88, 'フルーツ10');
33
35
 
34
36
  CREATE TABLE my_tags
35
- (`ID` int, `tag_kind_id` int, `book_author_id` int, `tag_name` varchar(100));
37
+ (`ID` int, `tag_kind_id` int, `tag_name` varchar(100));
36
38
  INSERT INTO my_tags
37
- (`ID`, `tag_kind_id`, `book_author_id`, `tag_name`) # tag_kind_id ( 1=genre | 2=author | 3=book )
39
+ (`ID`, `tag_kind_id`, `tag_name`)
38
40
  VALUES
39
- (1, 3, 2, '濃い赤'),
41
+ (1, 1, '濃い赤'),
40
- (2, 2, 0, '薄い青'),
42
+ (2, 1, '薄い青'),
41
- (3, 1, 0, '明るい緑'),
43
+ (3, 1, '明るい緑'),
42
- (4, 3, 5, 'かわいいピンク'),
44
+ (4, 1, 'かわいいピンク'),
43
- (5, 2, 0, '灰色'),
45
+ (5, 1, '灰色'),
44
- (6, 1, 0, '真っ青'),
46
+ (6, 1, '真っ青'),
45
- (7, 1, 0, '薄い赤'),
47
+ (7, 1, '薄い赤'),
46
- (8, 2, 0, '暗黒'),
48
+ (8, 1, '暗黒'),
47
- (9, 1, 0, '黄色'),
49
+ (9, 1, '黄色'),
48
- (10, 2, 0, '紫'),
50
+ (10, 1, '紫'),
49
- (11, 1, 0, 'オレンジ');
51
+ (11, 1, 'オレンジ');
50
52
 
51
53
  CREATE TABLE my_tag_holders
52
54
  (`fruits_ID` int, `tags_ID` int);