Я начну снова,
Допустим, мои данные:
Элемент таблицы (идентификатор, имя, ....)
1, элемент name 1, ....
2, имя элемента 2, ....
3, имя элемента 3, ....
Табличные теги (id, name, id_element, ....)
1, счастливый, 1
2, результат, 1
3, очень, 1
4, элемент, 2
5, другое, 3
6, элемент, 1
7, счастливый, 2
Так что, если поиск ' очень, счастливый, элемент, результат ': результаты, которые я хотел бы
1) элемент с id = 2, потому что он имеет все теги
2) элемент с id = 1, потому что у него есть тег 'element' и тег 'happy' (всего на 2 тега меньше)
3) .... (всего на 3 метки меньше)
Так что, если поиск ' happy, element ': результаты, которые я хотел бы
1) элемент с id = 1, потому что он имеет все теги (и не более)
2) элемент с id = 2, потому что он имеет тег «элемент» и тег «счастливый» (и еще два тега)
3) .... и еще 3 тега
Это отголосок моего запроса:
(он не соответствует всем требованиям, которые я написал, но это первый тест для поиска с соответствующими тегами)
SELECT element.id as id_deseada,tagg.* FROM element,tagg WHERE tagg.id_element = element.id AND tagg.nombre IN ('happy','tagg','result') GROUP BY tagg.id_element ORDER BY element.votos
Возвращает 10 дублированных элементов ...: S и даже не имеет всех тегов (а в базе данных есть теги с «счастливыми» результатами)
если это поможет, вот как я получаю элементы тега (по имени и только с одним тегом)
$query = "SELECT element.id FROM element,tagg WHERE tagg.nombre = '$nombre_tagg' AND tagg.id_element = element.id AND lan = '$lan' GROUP BY tagg.id_element";
Надеюсь, теперь это немного легче понять, извините за мой английский ..:)
------- РЕДАКТИРОВАТЬ ----------
Я получил этот запрос работающим, отправлено с: http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html (второй пример - моя структура)
SELECT b.*
FROM scBookmarks b, scCategories c
WHERE c.bId = b.bId
AND (c.category IN ('bookmark', 'webservice', 'semweb'))
GROUP BY b.bId
HAVING COUNT( b.bId )=3
представьте, что закладка - это элемент, а категория - тег (для моего примера)
Отлично работает, возвращает все элементы со ВСЕМИ тегами, НО также возвращает статьи с дополнительными тегами,
для этого запроса возможный результат будет:
Элемент 6 с тегами (закладка, веб-служба, semweb, extratag)
и я хочу этот дополнительный тег (фактически любые другие дополнительные теги), что-то делать с HAVING COUNT?
Я знаю
Большое спасибо за возможный вывоз!