Нуждайтесь в помощи, пожалуйста, помогите!
Я выполняю полнотекстовый поиск с помощью mysql.Мои данные хранятся в двух таблицах, поэтому я должен выполнить отдельные сопоставления для каждой таблицы и добавить релевантность вместе, как вы можете видеть в моем операторе MySQL.
Проблема в том, что я пытаюсь получить СЧЕТ для всех сообщений, которые есть в моей таблице сообщений.Однако это возвращается мне, только когда совпадение найдено в таблице вопросов, а не найдено ли совпадение в таблице сообщений?Есть идеи почему?
Скажите, пожалуйста, в дополнительной информации не требуется.Спасибо,
SELECT questions. * ,
posts.post,
COUNT(posts.post) -1 AS total_answers,
posts.votes,
posts.id AS post_id,
posts.created,
users.id AS user_id,
users.username,
users.rep,
MATCH (questions.title) AGAINST ( '{$keywords}') AS title_relevance,
MATCH (posts.post) AGAINST ( '{$keywords}') AS post_relevance
FROM questions
LEFT JOIN posts ON questions.id = posts.question_id
LEFT JOIN users ON questions.user_id = users.id
WHERE MATCH (questions.title) AGAINST ( '{$keywords}')
OR MATCH (posts.post) AGAINST ( '{$keywords}')
GROUP BY questions.id
ORDER BY (title_relevance + post_relevance) DESC
Нашли ответ.
SELECT questions. * , posts.post, posts.question_id AS QID, (
SELECT COUNT( posts.post )
FROM posts
WHERE question_id = QID
) AS total_answers, posts.votes, posts.id AS post_id, posts.created, users.id AS user_id, users.username, users.rep,
MATCH (
questions.title
)
AGAINST (
'humans'
) AS title_relevance,
MATCH (
posts.post
)
AGAINST (
'humans'
) AS post_relevance
FROM questions
LEFT JOIN posts ON questions.id = posts.question_id
LEFT JOIN users ON questions.user_id = users.id
WHERE MATCH (
questions.title
)
AGAINST (
'humans'
)
OR MATCH (
posts.post
)
AGAINST (
'humans'
)
GROUP BY questions.id
ORDER BY (
title_relevance + post_relevance
) DESC
LIMIT 0 , 30