@ololodff

Как правильно изменить sql запрос чтобы считывать данные с двух строк одной базы данных?

Есть вот такой запрос, он работает верно но в WHERE нужно добавить условие category=2
SELECT SUM(rating) as rating, SUM(vote_num) as num FROM " . PREFIX . "_post_extras WHERE user_id ='{$id}'

Но столбец "category" находится в другой строке базы.
Слышал про вариант с LEFT JOIN но так и не смог догнать как его тут применить. Прошу вашей помощи товарищи! Спасибо.
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
@alexalexes
Если предположить, что в таблице _post_extras есть столбец user_id, при этом данная таблица хранит расширенные сведения о записях другой таблицы - _post, каждая запись которой связана с первой таблицей отношением 1 к 1, через ключ post_id (название столбца-ключа как с первой таблицей, так и со второй автор не сообщал, но такая связь обязана существовать), получается следующее:
SELECT SUM(rating) as rating, SUM(vote_num) as num
  FROM " . PREFIX . "_post_extras as pe
  inner join " . PREFIX . "_post as p on p.post_id = pe.post_id -- тут название ключей post_id с обеих сторон нужно уточнять!
WHERE pe.user_id ='{$id}'
     and p.category = '{$category_id}'

Также нужно уточнить автору, что должен вернуть запрос. Данный запрос вернет суммарный рейтинг и голосов по конкретному пользователю в конкретной категории публикаций.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы