Как получить информацию из двух таблиц базы данных одновременно?(Баз данных) - PullRequest
1 голос
/ 17 сентября 2011

Я хочу показать статьи с наибольшим рейтингом на одной из страниц моего веб-сайта, но есть проблема.

У меня есть весь текст статьи, автор, дата, время и т. Д. В одной таблице под названием истории , и у меня есть результаты голосования в другой таблице под названием голоса .

Проблема в том, что когда я получаю информацию о статье из базы данных, мне нужно упорядочить ее по голосам, которые соответствуют ей (в таблице голосов у меня есть значение голоса и идентификатор статьи, которой она соответствует).

Так, как я могу отобразить статьи из таблицы story , но упорядочить их по значению голоса из таблицы голос , которая соответствует статье?

Псевдокод этого может быть:

SELECT * FROM stories ORDER BY //Votes from votes table where article_id corresponds to this article

Ответы [ 4 ]

2 голосов
/ 17 сентября 2011

Мы не видим структуру вашей таблицы, но при условии, что ваши отношения stories.article_id = votes.article_id, это очень просто JOIN с ORDER BY.Вам следует пересмотреть базовый синтаксис SQL JOIN, так как это своего рода вопрос SQL 101.Если ваш столбец идентификатора статьи в votes отличается от votes.article_id, замените его ниже.

SELECT
  stories.*,
  votes.votes
FROM stories JOIN votes ON stories.article_id = votes.article_id
ORDER BY votes.votes DESC
0 голосов
/ 17 сентября 2011

Вероятно, вы сохраняете одну строку для каждого голосования, чтобы вы могли отслеживать, какой пользователь проголосовал. В этом случае вы можете сделать:

select s.*, vc.Count
from Stories s
left outer join (
    select StoryID, count(*) as Count
    from Votes
    group by StoryID
) vc on s.StoryID = vc.StoryID
order by vc.Count desc
0 голосов
/ 17 сентября 2011

Поможет ли это вам?

SELECT stories.* FROM stories JOIN votes on votes.article_id = stories.id WHERE ...
0 голосов
/ 17 сентября 2011

Предполагая, что у вас есть поле, например voice_story_id, соответствующее story_id, используйте это:

SELECT stories.*, vote.vote_number FROM stories, votes WHERE vote_story_id = story_id ORDER BY vote.vote_number DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...