我有一個包含三個表的數據庫: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