我有一个包含三个表的数据库:questions,tags和questions_tags。这是他们如何设置:SQL Inner Join和Repeater
---------
questions
---------
Question_ID
Question_Title
Content
----
tags
----
Tag_ID
Tag_Title
--------------
questions_tags
--------------
Question_ID
Tag_ID
在我的程序中,我使用中继器来显示Question_Title和内容。我希望能够重复Tag_Title(尽管有很多标签也存在一定的问题)
本质上,我试图重新创建类似于stackoverflow的问题块(与问题,标签,视图等)
假设我有一个5个标签的问题,该问题被插入到问题表中,连同一个ID(自动增量)和问题的内容,然后,如果用户附加了任何标签,那么这些标签将被放入带关联ID的标签表中,然后questions_tags表将与Question_ID和Tag_ID匹配,因此它可能类似于:
Question_ID | Tag_ID
1 | 3
1 | 4
所以问题1在这个例子中有两个标签。 那么,我该如何让中继器在问题表中重复每个问题,然后重复与该问题相关的每个标签?
我创建了一个视图迄今其内部连接的问题,标签和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
所以你基本上想创建一个视图? – JackyBoi 2012-07-15 23:19:04
是的,在我的帖子末尾有一个视图设置,所以我可以轻松地用我的转发器重复它。 – 2012-07-15 23:20:51
您无法真正创建这样的视图,因为不能保证每个问题的标签数量相同,因此列数相同。我的应用程序中不使用中继器,因此我无法专门回答如何使用中继器执行此操作,但我会采用的方式是将数据加载到结构化的类层次结构中(问题包含标记的集合),然后根据需要呈现该层次结构(即单独呈现标记)。 – 2012-07-15 23:23:29