我有三個表格,圖像,標籤和鏈接(見下表)SQL過濾通過多個標籤
ImageNO | TagNO
1 | Sport
2 | Cars
3 | Sport
4 | Sport
3 | Cars
1 | Music
2 | Sport
(顯然TAGNO將是實際的表的數字)
我想什麼do允許過濾,以便用戶可以選擇任意數量的標籤,並將圖像過濾爲只有選擇了所有標籤的圖像。例如,如果用戶選擇「運動」,則將顯示「圖像NO」1,3,4和2。如果用戶也選擇「汽車」,則查詢被細化並且僅顯示「圖像NO」3和2。
我從整個網絡的例子嘗試了一些事情,到目前爲止,這是最接近我來......
SELECT *
FROM images
LEFT JOIN links
ON INO = links.INO
LEFT JOIN tags
ON tags.TagNO = links. TagNO
WHERE links. TagNO
IN ($tags)
GROUP BY INO
HAVING COUNT(INO) >1
($標籤)是標籤的數字陣列。
這個問題是隻有一個標籤的圖像將永遠不會顯示爲計數數= 1而不是> 1.任何幫助將不勝感激,在此先感謝。
請停止編輯並刪除其他人提供有益的格式化的重要的一點。如果所提供的數據和SQL格式易於閱讀,那麼對於某人來說,幫助您更容易。 – LOD121
你可以用一個位掩碼來做到這一點。如果我能想到一個具體的實現,我會附加它。 – ethrbunny