2011-06-13 56 views
0

我想寫一個web應用程序來訂購我的照片。我不想將它們放入類別中,而是想將標籤添加到某些圖片。我認爲具有2個表,一個用於圖像的:如何通過MySQL中的標籤雲實現導航

uniqueID imagename 
1   photo1.jpg 
2   photo2.jpg 
3   photo3.jpeg 
4   pic4.jpeg 

和一個表用於標籤:

ID   tag 
1   California 
1   Peter 
1   beach 
2   California 
2   L.A. 
2   Peter 
3   California 
3   Susan 
4   Kansas 
4   Claudia 

開始代碼是在一個尺寸accoring所示的應用程序,以OCCURENCES數之後在數據庫中。當我點擊一個標籤(例如「加利福尼亞州」)時,所有剩餘的圖像標籤也應該顯示在下一頁(這裏是:「Peter」,「beach」,「LA」,「Susan」但不是「堪薩斯」和「克勞迪亞」)。當我之後點擊標籤「peter」時,應顯示照片1和2的所有剩餘標籤(「beach」,「L.A.」)。

是否有可能通過單個查詢實現這兩件事情?

    從圖像表
  1. 選擇圖像的名稱,即必須在標籤,表中的所有選定的標籤
  2. 選擇這些圖像的所有剩餘標籤及其COUNT()(IDS)也有選擇的標籤在標籤表中。

感謝您的幫助

斯文

回答

0

爲1)必須使用一個SELECT查詢與聯接。例如:

SELECT  * 
FROM  images i 
INNER JOIN categories c 
     ON i.id = c.id 

對於2)我不太確定我明白你的意思是剩下的標籤。

+0

我同意INNER JOIN,但我不知道如何構造WHERE子句。它必須是'... WHERE tag ='California'&& tag ='Peter'',如果我想讓所有帶有「California」和「Peter」標記的圖像都可以。但由於所有標籤都在同一列中,因此永遠不會有可以同時具有兩個標籤的條目(只有一個標籤列!)。 – 2011-06-14 21:46:29

+0

**其餘標籤**每張圖片都有例如3個標籤。當我選擇兩個標籤(例如「加利福尼亞」和「彼得」)時,我想獲得「海灘」,「L.A.」 (「LA」是圖像2中的「剩餘標籤」,「海灘」是圖像1中的「剩餘標籤」)「剩餘標籤」用於計算所有圖像的標籤雲有標籤「加利福尼亞」和「彼得」。例如,標籤「Susan」不應該出現在新的標籤雲中,因爲Image3沒有標籤爲「Peter」(僅限於「California」)。 – 2011-06-14 21:54:44