Size: a a a

Сообщество Python Программистов

2020 December 28

👑️

👑OGURCHIK🖤 ️ in Сообщество Python Программистов
тогда почему не подходит
источник

👑️

👑OGURCHIK🖤 ️ in Сообщество Python Программистов
заменить на ту айди в условии
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Alexander T
Было б в тыщу раз проще с сущностью «чат айди» и таблицей соответствий юзеров
Тогда будет что-то типа

select * 
from chats
join chat_members on chats.id=chat_members.chat
join messages on chats.id=messages.chat
group by chats.id
order by messages.id desc
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
А, бля
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Последнее сообщение...
источник

👑️

👑OGURCHIK🖤 ️ in Сообщество Python Программистов
лимит 1
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Как его только взять?((
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
И вернётся один чат🌚
источник

AT

Alexander T in Сообщество Python Программистов
select … from messages group by chat id having messageid = max(messageid)
источник

AT

Alexander T in Сообщество Python Программистов
Бензофуран Гетероцикл
Тогда будет что-то типа

select * 
from chats
join chat_members on chats.id=chat_members.chat
join messages on chats.id=messages.chat
group by chats.id
order by messages.id desc
^
источник

T

Tuum Daemonia in Сообщество Python Программистов
лучше было бы с

чат айди
чат мембер айди

фром, ту как-то дико
источник

👑️

👑OGURCHIK🖤 ️ in Сообщество Python Программистов
сложна
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Alexander T
select … from messages group by chat id having messageid = max(messageid)
А часть с max это как работает?
источник

AT

Alexander T in Сообщество Python Программистов
Бензофуран Гетероцикл
А часть с max это как работает?
как where для групбая - условие проверяется в пределах каждой группы
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Alexander T
как where для групбая - условие проверяется в пределах каждой группы
max тоже только по группе отрабатывает?
источник

AT

Alexander T in Сообщество Python Программистов
да
источник

AT

Alexander T in Сообщество Python Программистов
select a, count(b) cnt form … groub py a having cnt > 5
выбрать те группы, где каунт > 5
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Красиво
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
SELECT CASE WHEN m.to_id = 1 THEN m.from_id ELSE m.to_id END AS "interlocutor", u.name, m.id, m.text
FROM messages m
 JOIN users u ON
   u.id = m.to_id OR u.id = m.from_id
WHERE m.to_id = 1 OR m.from_id = 1
GROUP BY interlocutor
HAVING m.id = max(m.id)
ORDER BY m.id DESC
источник

БГ

Бензофуран Гетероцик... in Сообщество Python Программистов
Бензофуран Гетероцикл
SELECT CASE WHEN m.to_id = 1 THEN m.from_id ELSE m.to_id END AS "interlocutor", u.name, m.id, m.text
FROM messages m
 JOIN users u ON
   u.id = m.to_id OR u.id = m.from_id
WHERE m.to_id = 1 OR m.from_id = 1
GROUP BY interlocutor
HAVING m.id = max(m.id)
ORDER BY m.id DESC
В текущей структуре БД должно бы сработать
источник