Соединение двух таблиц, чтобы получить максимальное время входа человека - PullRequest
0 голосов
/ 23 октября 2018

У меня есть две таблицы.Один для Клиента, а другой для управления историей входа.Теперь я хочу получить имя клиента и адрес электронной почты из таблицы клиентов, а время последнего входа в систему - из таблицы логистов.

Я использовал запрос:

select cust_email, login_time, cust_email
from customer
left join login on customer.cust_id = login.cust_id
GROUP by cust_id

Это дает мне правильный результат, показывая NULL для клиентов, которые никогда не входили в систему, но дает время первого входа в систему других клиентов, а не самого последнего.,Как мне получить время последнего входа клиента?

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Использовать MAX() & столбцы, которые находятся в операторе SELECT, должны быть агрегированы или должны быть с GROUP BY предложением:

select c.cust_email, max(l.login_time)
from customer c left join 
     login l
     on c.cust_id = l.cust_id
GROUP BY c.cust_email;

Примечание: Используйте таблицу alias, которая проста для понимания& читать.

0 голосов
/ 23 октября 2018

Я думаю, что вы должны использовать простое "Join", а не left join с предложением order byПопробуйте это:

select cust_email, login_time, cust_email
from customer
join login on customer.cust_id = login.cust_id
GROUP by cust_id
Order by login_time esc
0 голосов
/ 23 октября 2018

использование max() функция

   select cust_email,max(login_time) as max_login_time from customer
   left join login on customer.cust_id=login.cust_id
   GROUP by cust_email
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...