У меня есть несколько таблиц:
ресурсы (которые содержат все сообщения)
pid |usrnm |название |ссылка |содержание |стить |Sdesc |в |лайки
теги (которые содержат все теги и идентификатор)
id |slug
retags (который связывает ресурс и его теги)
pid |tid
Я пытаюсь создать поисковую систему, с помощью которой вы можете искать по нескольким тегам, поисковому значению и упорядочивать результаты по самым новым или наиболее понравившимся.
Я использую SQL для поиска по тэгам:
SELECT
resources.pid, resources.title
FROM resources
INNER JOIN retags ON resources.pid = retags.pid
INNER JOIN tags ON retags.tid = tags.id
GROUP BY resources.pid
HAVING
SUM(tags.slug = 'tag-z')
AND
SUM(tags.slug = 'tag-y')
Как я могу применить SQL для значения поиска WHERE title LIKE '%bla%'
и порядка ORDER BY at DESC
к этому поисковому тегу SQL?Я пытался выбрать из выбора, но продолжал получать ошибки, такие как «Didlicate column pid», «Colid 'pid' в списке полей неоднозначен" и т. Д.
Может кто-нибудь помочь мне с этим SQL?Спасибо
Я попробовал все в StackOverflow, как использование псевдонима для имени столбца на одном SELECT pid as pid_ ...
и даже на обоих выборках, но я все еще продолжал получать ту же ошибку дублирующегося столбца.
EDIT:SQL, из которого я получаю ошибки:
SELECT * FROM
(SELECT * FROM resources
INNER JOIN retags ON resources.pid = retags.pid
INNER JOIN tags ON retags.tid = tags.id
GROUP BY resources.pid
HAVING
SUM(tags.slug = 'A2') AND
SUM(tags.slug = 'AS')
) AS tsr WHERE tsr.title LIKE '%bla%' ORDER BY tsr.`at` DESC
Это только один из них, я пробовал много разных типов из других постов и разные ошибки, которые я получаю от них.