質問編集履歴

10

訂正

2020/12/07 19:02

投稿

premiummalts
premiummalts

スコア3

test CHANGED
@@ -1 +1 @@
1
- 未指定のタグを持ち、n件以上ある記事を取得する(MySQL)
1
+ n件以上ある記事を持つタグを取得する(MySQL)
test CHANGED
File without changes

9

訂正

2020/12/07 19:02

投稿

premiummalts
premiummalts

スコア3

test CHANGED
File without changes
test CHANGED
@@ -4,11 +4,7 @@
4
4
 
5
5
  記事とタグのテーブルがあります
6
6
 
7
- タグを指定せず、記事をランダムに取得したいです
7
+ 「記事は3件以上」という条件をクリアして、タグを取得したいです
8
-
9
-
10
-
11
- ただし「取得される記事は3件以上」あってほしいです
12
8
 
13
9
 
14
10
 
@@ -158,7 +154,7 @@
158
154
 
159
155
  そして実現したいことのために書いたのはこちらのコードです
160
156
 
161
- 取得される記事は3件以上」という条件を
157
+ 「記事は3件以上」という条件を
162
158
 
163
159
  「HAVING ((Count(*))>=3)」で表現しているつもりです
164
160
 
@@ -204,7 +200,7 @@
204
200
 
205
201
  tag_ID=4を持つのは3件
206
202
 
207
- 他は「取得される記事は3件以上」に合致しないので取得されず、レコードは次の3件としたいです
203
+ 他は「記事は3件以上」に合致しないので取得されず、レコードは次の3件としたいです
208
204
 
209
205
  |tags_ID|そのタグを持つcontents_IDの件数
210
206
 

8

訂正

2020/12/07 18:52

投稿

premiummalts
premiummalts

スコア3

test CHANGED
File without changes
test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  ```sql
26
26
 
27
- -- 記事と投稿者
27
+ -- 記事
28
28
 
29
29
  CREATE TABLE contents
30
30
 
@@ -82,7 +82,7 @@
82
82
 
83
83
 
84
84
 
85
- -- タグリスト
85
+ -- タグ
86
86
 
87
87
  CREATE TABLE tags
88
88
 

7

訂正

2020/12/07 18:51

投稿

premiummalts
premiummalts

スコア3

test CHANGED
File without changes
test CHANGED
@@ -86,32 +86,30 @@
86
86
 
87
87
  CREATE TABLE tags
88
88
 
89
- (`ID` int, `tag_name` varchar(100), `rank_weekly` int)
89
+ (`ID` int, `tag_name` varchar(100))
90
90
 
91
91
  ;
92
92
 
93
93
  INSERT INTO tags
94
94
 
95
- (`ID`, `tag_name`, `rank_weekly`)
95
+ (`ID`, `tag_name`)
96
96
 
97
97
  VALUES
98
98
 
99
- (1, 'タグ1', 1),
99
+ (1, 'タグ1'),
100
-
100
+
101
- (2, 'タグ2', 2),
101
+ (2, 'タグ2'),
102
-
102
+
103
- (3, 'タグ3', 3),
103
+ (3, 'タグ3'),
104
-
104
+
105
- (3, 'タグ4', 4),
105
+ (3, 'タグ4'),
106
-
106
+
107
- (3, 'タグ5', 5),
107
+ (3, 'タグ5'),
108
-
108
+
109
- (3, 'タグ6', 6)
109
+ (3, 'タグ6')
110
110
 
111
111
  ;
112
112
 
113
-
114
-
115
113
  -- タグリレーション
116
114
 
117
115
  CREATE TABLE tag_relations

6

訂正

2020/12/07 18:50

投稿

premiummalts
premiummalts

スコア3

test CHANGED
File without changes
test CHANGED
@@ -96,17 +96,17 @@
96
96
 
97
97
  VALUES
98
98
 
99
- (1, 'tag_ID1', 1),
99
+ (1, 'タグ1', 1),
100
-
100
+
101
- (2, 'tag_ID2', 2),
101
+ (2, 'タグ2', 2),
102
-
102
+
103
- (3, 'tag_ID3', 3),
103
+ (3, 'タグ3', 3),
104
-
104
+
105
- (3, 'tag_ID4', 4),
105
+ (3, 'タグ4', 4),
106
-
106
+
107
- (3, 'tag_ID5', 5),
107
+ (3, 'タグ5', 5),
108
-
108
+
109
- (3, 'tag_ID6', 6)
109
+ (3, 'タグ6', 6)
110
110
 
111
111
  ;
112
112
 

5

訂正

2020/12/07 18:48

投稿

premiummalts
premiummalts

スコア3

test CHANGED
File without changes
test CHANGED
@@ -204,7 +204,7 @@
204
204
 
205
205
  tag_ID=2を持つのは3件
206
206
 
207
- tag_Id=4を持つのは3件
207
+ tag_ID=4を持つのは3件
208
208
 
209
209
  他は「取得される記事は3件以上」に合致しないので取得されず、レコードは次の3件としたいです
210
210
 

4

訂正

2020/12/07 18:43

投稿

premiummalts
premiummalts

スコア3

test CHANGED
File without changes
test CHANGED
@@ -200,7 +200,13 @@
200
200
 
201
201
  目的はこのような値です
202
202
 
203
+ tag_ID=1を持つのは4件
204
+
205
+ tag_ID=2を持つのは3件
206
+
207
+ tag_Id=4を持つのは3件
208
+
203
- tag_ID=1を持つのは4件で、tag_ID=2を持つのは3件で、他は「取得される記事は3件以上」に合致しないので取得されず、レコードは次の2件としたいです
209
+ 他は「取得される記事は3件以上」に合致しないので取得されず、レコードは次の3件としたいです
204
210
 
205
211
  |tags_ID|そのタグを持つcontents_IDの件数
206
212
 
@@ -209,3 +215,5 @@
209
215
  |1|4|
210
216
 
211
217
  |2|3|
218
+
219
+ |4|3|

3

訂正

2020/12/07 18:39

投稿

premiummalts
premiummalts

スコア3

test CHANGED
File without changes
test CHANGED
@@ -148,7 +148,7 @@
148
148
 
149
149
  # contents_ID=9が、tag_ID=2とtag_ID=4を持っている
150
150
 
151
- (4, 1, 1, 9), (5, 1, 1, 9),
151
+ (2, 1, 1, 9), (4, 1, 1, 9),
152
152
 
153
153
  # contents_ID=10が、tag_ID=2とtag_ID=4とtag_ID=6を持っている
154
154
 
@@ -208,4 +208,4 @@
208
208
 
209
209
  |1|4|
210
210
 
211
- |2|2|
211
+ |2|3|

2

訂正

2020/12/07 18:37

投稿

premiummalts
premiummalts

スコア3

test CHANGED
File without changes
test CHANGED
@@ -132,7 +132,7 @@
132
132
 
133
133
  # contents_ID=2が、tag_ID=1を持っている
134
134
 
135
- (2, 1, 1, 1),
135
+ (1, 1, 1, 2),
136
136
 
137
137
  # contents_ID=4が、tag_ID=1とtag_ID=3とtag_ID=4を持っている
138
138
 
@@ -192,8 +192,6 @@
192
192
 
193
193
  |1|3|
194
194
 
195
- |1|3|
196
-
197
195
  |2|3|
198
196
 
199
197
 

1

訂正

2020/12/07 18:35

投稿

premiummalts
premiummalts

スコア3

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- ただし記事はタグを3件以上っていてほしいです
11
+ ただし「取得される記事は3件以上」あってほしいです
12
12
 
13
13
 
14
14
 
@@ -160,7 +160,7 @@
160
160
 
161
161
  そして実現したいことのために書いたのはこちらのコードです
162
162
 
163
- 「記事はタグを3件以上持っていてほしい」という条件を
163
+ 取得される記事は3件以上」という条件を
164
164
 
165
165
  「HAVING ((Count(*))>=3)」で表現しているつもりです
166
166
 
@@ -202,7 +202,7 @@
202
202
 
203
203
  目的はこのような値です
204
204
 
205
- tag_ID=1を持つのは4件で、tag_ID=2を持つのは3件で、他は「記事はタグを3件以上持っていてほしい」に合致しないので取得されず、レコードは次の2件としたいです
205
+ tag_ID=1を持つのは4件で、tag_ID=2を持つのは3件で、他は「取得される記事は3件以上」に合致しないので取得されず、レコードは次の2件としたいです
206
206
 
207
207
  |tags_ID|そのタグを持つcontents_IDの件数
208
208