Если это так, то вы можете использовать запрос, подобный этому ...
ссылки (id, linkName)
теги (id, tagName)
tagsBridge (tagID, linkID)
Я думаю, что вам нужен запрос ...
SELECT T.id, T.tagName, COUNT(TB.tagID)
FROM tagsBridge TB
INNER JOIN tags T ON TB.tagID = T.id GROUP BY T.id, T.tagName
О, мои извинения, я неправильно понял вопрос ... то, что я думаю, что вы хотите, то это, хотя он использует вложенные запросы ...
SELECT T.id, T.tagName, COUNT(TB.tagID)
FROM tagsBridge TB
INNER JOIN tags T ON TB.tagID = T.id
WHERE TB.tagID IN (
SELECT tagID FROM tagsBridge WHERE linkID IN (
SELECT linkID FROM tagsBridge WHERE tagID IN (
SELECT tagID FROM tagsBridge WHERE linkID = (THE SELECTED LINK)
)
)
)
GROUP BY T.id, T.tagName
Этот запрос должен предоставить вам список идентификаторов тегов, имен тегов и количество каждого из них для всех тегов выбранной ссылки и всех тегов, связанных с тегами этой ссылки. Человек, который звучит странно, но я думаю, это то, что ты ищешь.