SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 30.04.2014 22:14:29

dead_eyes
Участник
Зарегистрирован: 20.05.2013
Сообщений: 5

Подсчёт лайков в таблице

Здравствуйте! Есть три таблицы:

Таблица posts:
id| post_name     |user_id
--+---------------+-------
1 | Планета Земля |  3
2 | Приключения   |  6
3 | Космос            |  5

Таблица: users
user_id |name
-------+-----
3       |Вася
5       |Коля
6       |Петя

Таблица: likes.
(users_id - тот, кто поставил лайк)
post_id| user_id like
-------+------+-----
   1   |    3     |   1
   1   |    5     |   1
   2   |    6     |   1
   
   
На выходе нужно получить:
Идентификатор поста, сумму лайков поста и автора поста.
post_id   like  name
   1       2    Вася
   2       1    Петя
   3       0    Коля

Если у поста нет лайков, то like просто будет равнятся нулю.

Неактивен

 

#2 06.05.2014 10:21:17

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Подсчёт лайков в таблице

select p.post_id, ifnull(t.`like`,0) `like`, u.name
from posts p left join
(select post_id, count(`like`) `like` from likes group by 1) t on p.user_id=t.user_id
join users u on p.user_id =u.user_id;

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson