AS message_id
FROM
(
SELECT from_user_id AS user_id, MAX(id) AS message_id FROM chats WHERE to_user_id = 68
GROUP BY from_user_id
UNION
SELECT to_user_id AS user_id, MAX(id) AS message_id FROM chats WHERE from_user_id = 68
GROUP BY to_user_id) AS d
GROUP BY d.user_id) AS dialogs
LEFT JOIN chats cd ON cd.id = dialogs.message_id
LEFT JOIN users u ON u.id = dialogs.user_id;
можно ли это упростить? допустимо ли так или лучше делать ряд маленьких запросов? кто подскажет?
я бы такое у ChatGPT спрашивал. Касательно 1 большой vs много маленьких вопросов зависит от специфики. Но как правило если можно что-то сделать одним запросом, то лучше это сделать одним запросом, т.к. меньше накладных расходов.
chatGPT что все к нему отправляют, он такой умный стал?)
просто то что ты спрашиваешь, это не сложная но рутинная задача. Мало кому интересно садиться и разбираться в чужих sql запросах.
да, понимаю, может просто взгляд со стороны бегло - и очевидно решение. хотя понимаю везде всё индивидуально
мне сложно представить человека который один раз взглянув на простыню sql, мгновенно выдаст оптимизированный вариант 😄
Обычная программа которая разработана профессиональными программистами , для не профессиональных программистов
Обсуждают сегодня