SQL Выбрать сообщения, где ключевые слова соответствуют интересам пользователей

В настоящее время у меня возникают некоторые технические трудности с веб-приложением для блога. Я хочу создать страницу «Обнаружение», где пользователи смогут находить новые сообщения в зависимости от их интересов. Я сделаю это, добавив ключевые слова к этим сообщениям. Таким образом, я могу просто выбрать посты, в которых совпадают интересы пользователя и ключевые слова поста. Теперь я понял, что забрел в глубокие воды.

После долгих исследований я решил поделиться своей проблемой и, возможно, получить некоторые рекомендации. У меня 4 стола, «пользователи», «должность», «ключевые слова», «интересы». «ключевые слова» таблица содержит «Post_id» а также «Keyword_value». Таблица «интересы» содержит «Идентификатор пользователя» а также «Interest_value».

Теперь, как я могу выбрать сообщения из «должность» таблица, в которой ключевые слова, связанные с сообщением, соответствуют интересам, связанным с текущим пользователем.

Заранее спасибо. Все отзывы приветствуются.

ОБРАЗЦЫ ДАННЫХ:

«пользователи»
[1]

«должность»
введите описание изображения здесь

«интересы»
введите описание изображения здесь

«ключевые слова»
введите описание изображения здесь

1

Решение

Было бы очень полезно, если бы вы также предоставили некоторые данные. Я подозреваю, что вы описали свои таблицы неправильно — я думаю, что вы имели в виду, что ключевые слова стол имеет post_id а также keyword_value и интересы стол имеет Идентификатор пользователя а также interest_value. Если это так, то этот запрос должен работать:

SELECT *
FROM posts
WHERE post_id IN (
SELECT post_id
FROM keywords
WHERE keyword_value IN (
SELECT interest_value
FROM interests
WHERE user_id = @userId
)
)

введите описание изображения здесь

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]