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

質問編集履歴

1

質問内容追加

2020/08/06 01:41

投稿

atsuaa0618
atsuaa0618

スコア9

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
  ### 発生している問題・エラーメッセージ