@Heinemann

Как соединить данные из разных таблиц в одну?

отобразить статистику на сайте: общее количество статей; пользователь, который имеет больше всех публикаций; пост на форуме, у которого больше всего комментариев и т.д. Можно ли эту статистику упаковать в один запрос к бд и получить ответ одной таблицей?
Если использовать join'ы, то на примере постов - общее количество постов будет считаться только для того пользователя, который имеет больше всего публикаций, а не общее количество среди всех пользователей. А мне нужно, чтобы я обработал данные в разных таблицах без связи, а после объединил их. Можно ли как-то это сделать?
select distinct users.*, count(posts.id) FROM users
join posts on users.id = posts.owner_id
where users.id = (
    select posts.owner_id from posts
    group by posts.owner_id
    having count(posts.owner_id) = (
        select max(rc.count_posts) from (
            SELECT count(posts.owner_id) as count_posts FROM posts
            group by posts.owner_id
            ) as rc
        )
    )
group by users.id
  • Вопрос задан
  • 170 просмотров
Пригласить эксперта
Ответы на вопрос 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
SELECT ( SELECT COUNT(*) FROM posts WHERE owner_id = users.id ) AS CountUserPost
  --  и другие подзапросы по пользователю
  FROM users
Ответ написан
Ваш ответ на вопрос

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

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