Запрос MySQL для обмена лайками

Программирование, которое не связано с API.
Ответить
sasha^
Сообщения: 711
Зарегистрирован: 10 сен 2012, 16:52

Запрос MySQL для обмена лайками

Сообщение sasha^ »

Вот пока мой вариант:)

Код: Выделить всё

SELECT n.id, n.href FROM users AS u, need AS n WHEREn.hold+10 <= u.score -(SELECT SUM(hold) FROM need WHERE userid = n.userid AND time > NOW()-40)OR ((n.time < NOW()-40) AND ((SELECT SUM(hold) FROM need WHERE userid = n.userid AND time > NOW()-40)+10 <= u.score))
Структура таблиц:
users id userid score
need id href hold userid time active

Задача:
Найти id и href из таблицы need, КОГДА:
hold+10 <= score(с одинаковыми useid в обеих таблицах) отнять сумма hold из таблицы need с тем-же userid и time > NOW()-40
ИЛИ
time < NOW()-40 и score(с одинаковыми useid в обеих таблицах) отнять сумма hold из таблицы need с тем-же userid и time > NOW()-40

З.Ы. знаю устращающее, но не бойтесь :)

Спросите зачем это надо?
Ответ: делаю обмен лайками (не приложение).
Суть такая: есть таблица с челами users и таблица людей, которым нужны лайки need. Можно сразу до 5 целей выставлять для лайков. Холд - это все запросы, поданные участниками на сервер для того чтобы поставить лайк. Пока лайк не поставлен - мы записуем + холд, иначе так попадет 100 людям одно и тоже, а на счету юзера всего 10 очков, тогда тупо... Поэтому берем ссылку и ид ее из need КОГДА сума холда текущего + 10 (за каждый лайк 10 очков) меньше или равно сумме счета владельца нуждаещегося в лайке минус все холды других целей, где время больше чем текущее минус 40 ИЛИ когда время меньше текущего минус 40 и дальше те-же условия
ВОТ так...

Может есть вариант полегче сделать...
З.Ы. еще я не писал, но будет сравнивание с таблицей лайков, которые поствлены - нет ли там нашего юзера (из пхп берется), а то два лайка не поставить..
Ответить