поиск по таблице и связанным таблицам с полным текстом - PullRequest
0 голосов
/ 22 марта 2012

У меня есть простая база данных, подобная этой:

table "contents":
--------------------------
CID | contentName
  1 | Watermelon

table "tags":
--------------------------
TID | tagName | tagKeywords
 77 | Fruit   | Fruit, fruits
 99 | Nature  | nature, green, mother earth

table "associations":
--------------------------
CID | TID
  1 | 77
  1 | 99

как мне написать выборку, которая ищет в таблице "содержимое", где каждая строка наследует ключевые слова любого связанного тега?

например, если я ищу "фрукты" и "зеленый", полнотекстовый поиск должен привести к более релевантному, потому что совпадает с двумя тегами

1 Ответ

1 голос
/ 22 марта 2012

Я думаю это больше, чем вы ищете:

SELECT c.contentName, GROUP_CONCAT(tagkeywords separator ',')
FROM contents c
INNER JOIN associations a ON a.CID = c.CID
INNER JOIN tags t ON t.TID = a.TID
GROUP BY c.contentName;

Я только что проверил и получил следующее:

contentName    GROUP_CONCAT(tagkeywords separator ',')
-----------    ---------------------------------------
Watermelon     Fruit, fruits,nature,green,mother earth
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...