質問編集履歴
2
訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -299,3 +299,7 @@
|
|
299
299
|
group by wrap.ID
|
300
300
|
|
301
301
|
```
|
302
|
+
|
303
|
+
###バージョン情報
|
304
|
+
|
305
|
+
ちなみに使用しているのは MariaDB の v10.0.33 で、これはMySQLでいうと v5.5 に相当するものになります
|
1
訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -154,7 +154,7 @@
|
|
154
154
|
|
155
155
|
```
|
156
156
|
|
157
|
-
### ソースコード
|
157
|
+
### 現状のソースコード
|
158
158
|
|
159
159
|
まずは【条件1:指定タグを持っている】だけを採用した場合を考えまして、こちらになります
|
160
160
|
|
@@ -204,6 +204,8 @@
|
|
204
204
|
|
205
205
|
|
206
206
|
|
207
|
+
###求める結果
|
208
|
+
|
207
209
|
あとは上記に【条件2:タグ単位で2件ずつ】という条件を加味して、次の結果を得たいという状況です
|
208
210
|
|
209
211
|
|
@@ -232,6 +234,8 @@
|
|
232
234
|
|
233
235
|
|
234
236
|
|
237
|
+
###試したこと
|
238
|
+
|
235
239
|
しかしこの結果の取得が大変難しく思います
|
236
240
|
|
237
241
|
|
@@ -261,3 +265,37 @@
|
|
261
265
|
|
262
266
|
|
263
267
|
というような指定をしても、結果は条件1の場合と変わらずでした
|
268
|
+
|
269
|
+
|
270
|
+
|
271
|
+
あとは、全体をwrapと囲んだサブクエリを作り、それに対してgroup byをかけて以下のようにしてみたのですが、やはりこちらも求める結果になりません
|
272
|
+
|
273
|
+
```sql
|
274
|
+
|
275
|
+
select *
|
276
|
+
|
277
|
+
from (
|
278
|
+
|
279
|
+
select p.ID
|
280
|
+
|
281
|
+
, p.contents
|
282
|
+
|
283
|
+
, group_concat(t.tag_name separator ' ') as tag_names
|
284
|
+
|
285
|
+
from posts p
|
286
|
+
|
287
|
+
left join tag_relations tr ON tr.contents_ID = p.ID
|
288
|
+
|
289
|
+
left join tags t ON t.ID = tr.tags_ID
|
290
|
+
|
291
|
+
where t.tag_name IN ( 'タグ1', 'タグ2', 'タグ4', 'タグ7' ) # タグ名を指定
|
292
|
+
|
293
|
+
AND p.ID NOT IN ( 1 ) # 記事IDを除外
|
294
|
+
|
295
|
+
group by p.ID, t.tag_name
|
296
|
+
|
297
|
+
) AS wrap
|
298
|
+
|
299
|
+
group by wrap.ID
|
300
|
+
|
301
|
+
```
|