我想創建一個查詢它,爲簡單起見,搜索一組一組的博客文章和回報的相關標籤:MySQL的搜索和加入標籤的超
1)的博客文章與搜索查詢匹配的標籤 AND 2)與該博文相關聯的任何其他標籤,不一定與搜索詞匹配。
的博客文章被存儲在一個表:
table: entries
id | entry
-------------
1 | entry 1
2 | entry 2
3 | entry 3
...
和標籤存儲在另一個表。
SELECT entries.entry, tags.tag FROM entries
LEFT JOIN tags ON tags.entry_id = entries.id where tags.tag like '%tag%'
這將返回:
entry | tag
--------------------
entry 1 | tag_1
entry 2 | another_tag
因此,查詢正確的搜索標籤,但我想拉任何其他標記
table: tags
id | entry_id | tag
---------------------------
1 | 1 | tag_1
2 | 1 | another
3 | 2 | another_tag
4 | 3 | third_entry
....
MySQL查詢的結構如下:與這兩個條目相關聯,因爲我將在搜索結果中顯示標籤的超集。任何指導表示讚賞。
所以,你想從帖子有TAG_1所有標籤和another_tag? – AlfredoVR 2011-12-21 07:23:59
對於作爲搜索結果一部分出現的任何條目,我現在想要爲這些條目提取所有標籤。 – 2011-12-21 07:26:53
糾正我,如果我錯了,但你的數據庫設計是錯誤的。您必須使用entry_id tag_id創建表entry_tag以建立多對多關係的模型。你做到了嗎? – AlfredoVR 2011-12-21 07:29:23