@VexeR
VexeR
15 Nov 2013

Реквестирую умельца на sql в тред. Никак сам не соображу: есть, условно, таблица, в которой хранятся посты пользователей (POSTS). Есть таблица связей между пользователями - кто кого читает (FRIENDS). Ну и таблица с пользователями (USERS), в которой в числе прочих есть TIMESTAMP - когда пользователь последний раз смотрел ленту. Нужен запрос, который будет возвращать количество постов (но не сами посты!), которые появились во френдленте со времен этого TIMESTAMP. У кого какие идеи?

16 Nov 2013

select
u.u_name,
count(p.p_id)
from
users u
left join friends f on (f.u_id = u.u_id)
left join posts p on (p.p_uid = f.f_id)
where
p.p_time > u.u_timestamp


posts
p_id
p_uid
p_time

friends
u_id
f_id

users
u_id
u_name
u_timestamp

Не?
Голова на выходных не соглашается работать, так что с первого раза могу и промазать :)

17 Nov 2013

Доберусь до проекта - проверю, сенькс!

#nfwzu/2 в ответ на /1
18 Nov 2013

Ща попробую переделать на 1 юзера, с конкретным id.

#nfwzu/3 в ответ на /1
18 Nov 2013

Работает. Теперь соображаю, как быть, когда идет речь о нескольких "ветках", в которых надо показать количество новых постов))

#nfwzu/4 в ответ на /1
19 Nov 2013

Ну, тут можно попробовать группировкой поиграться по постам
Хотя подозреваю, что это будет проще средствами движка сайта сделать, чем запросом :)

#nfwzu/5 в ответ на /4

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.