question、tags、questions_tags の 3 つのテーブルを持つデータベースがあります。設定方法は次のとおりです。
---------
questions
---------
Question_ID
Question_Title
Content
----
tags
----
Tag_ID
Tag_Title
--------------
questions_tags
--------------
Question_ID
Tag_ID
私のプログラムでは、リピーターを使用して Question_Title と Content を表示しています。Tag_Title を繰り返すことができるようにしたい (ただし、特定の質問にも多くのタグがあります。
基本的に、stackoverflow の質問ブロック (質問、タグ、ビューなど) に似たものを再作成しようとしています。
では、5 つのタグを持つ質問があるとします。その質問は、ID (自動インクリメント) と質問の内容と共に質問テーブルに挿入されます。次に、ユーザーが質問に付けたタグを使用して、それらのタグは関連付けられた ID とともにタグ テーブルに配置されます。次に、questions_tags テーブルは Question_ID と Tag_ID を照合します。したがって、次のようになります。
Question_ID | Tag_ID
1 | 3
1 | 4
この例では、質問 1 には 2 つのタグがあります。では、リピーターに質問テーブル内の各質問を繰り返してもらい、その質問に関連付けられた各タグを繰り返すにはどうすればよいでしょうか?
これまでに質問、タグ、および question_tags を内部結合するビューを作成しましたが、それを繰り返すと質問が複数回繰り返されるだけです...
参加のために私が行ったことは次のとおりです。
SELECT q.Question_ID, qt.Tag_ID, t.Tag_Title, q.Question_Title, q.Content, q.Views
FROM questions q
INNER JOIN questions_tags qt
ON q.Question_ID = qt.Question_ID
Inner JOIN tags t
ON qt.Tag_ID = t.Tag_ID
または、言い換えれば、次のようなテーブルを作成するように、結合を使用してビューを作成するにはどうすればよいですか?:
Question_ID | Tag1 | Tag2 | Tag1_Title | Tag2_Title | Question_Title | Content