質問編集履歴
1
質問内容追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
WHERE句ではq_tagsが使えないのでしょうか?
|
4
4
|
|
5
5
|
### 前提・実現したいこと
|
6
|
+
tagsの中に検索タグが含まれているレコードを抽出する方法を探しています。
|
6
7
|
|
7
8
|
```sql
|
8
9
|
SELECT questions.id AS q_id, question, answer, GROUP_CONCAT(tags.name) AS q_tags
|
@@ -12,9 +13,23 @@
|
|
12
13
|
WHERE q_tags LIKE "%文字列%"
|
13
14
|
GROUP BY questions.id
|
14
15
|
```
|
15
|
-
こ
|
16
|
+
こんな感じで抽出したいのですが、エラーが出てしまいます。
|
16
|
-
WHERE句がないと、問題なくSELECTできます。
|
17
|
+
次のように、WHERE句がないと、問題なくSELECTできます。
|
17
18
|
|
19
|
+
```sql
|
20
|
+
SELECT questions.id AS q_id, question, answer, GROUP_CONCAT(tags.name) AS q_tags
|
21
|
+
FROM questions
|
22
|
+
LEFT JOIN tag_relation ON questions.id = tag_relation.question_id
|
23
|
+
LEFT JOIN tags ON tag_relation.tag_id = tags.id
|
24
|
+
GROUP BY questions.id
|
25
|
+
```
|
26
|
+
(例)
|
27
|
+
|q_id|question|answer|q_tags|
|
28
|
+
|:--|:--:|:--:|--:|
|
29
|
+
|1|質問内容|答え|タグa,タグb|
|
30
|
+
|2|質問内容|答え|タグa,タグb,タグc|
|
31
|
+
|3|質問内容|答え|タグc,タグd|
|
32
|
+
|
18
33
|
questionsテーブルと、tagsテーブルを、中間テーブルtag_relationを使って「多対多」で結合しています。
|
19
34
|
|
20
35
|
### 発生している問題・エラーメッセージ
|