Я попал в ловушку запроса sql, я знаю, что это может быть обычным делом, но не могу найти правильного решения. Из моей таблицы messages
я успешно получил максимальный идентификатор, объединив столбцы from
и to
, теперь я пытаюсь вытащить name
этого максимального идентификатора из другой таблицы с именами users
,
Вот мой рабочий запрос, чтобы найти максимальный идентификатор,
select m.*
from messages m
where m.id in (select max(m.id) as max_id
from messages m
where m.`from` = 7
or m.`to` = 7
group by least(m.`to`, m.`from`), greatest(m.`to`, m.`from`))
Я пробовал что-то вроде этого, но оно соответствует имени с from
столбцом messages
таблицы.
select messages.*, users.name
from messages
left join users on messages.`from` = users.id
where messages.id in (select max(id) as max_id
from messages
where `from` = 7
or `to` = 7
group by least(`to`, `from`), greatest(`to`, `from`))
Я хочу, чтобы это имя отображалось в соответствии с максимальным идентификатором, который я получаю.
столбцы messages
таблицы: id, from, to, created_at
столбцы таблицы users
: id, name, email, created_at
Пожалуйста, помогите мне,