我有一个包含三个表的数据库:问题、标签和问题标签。这是它们的设置方式:
---------
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 个两个标签。那么我怎样才能让复读器重复问题表中的每个问题,然后重复与该问题关联的每个标签?
到目前为止,我已经创建了一个内部连接问题、标签和 questions_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