Может ли кто-нибудь указать мне правильное направление, что мне нужно прочитать? ...
У меня есть две таблицы. 1-й с идентификатором клиента и именем клиента. 2-й с идентификатором клиента и датой звонка клиенту. Я использовал LEFT JOIN
, чтобы получить список для каждого клиента со всеми звонками ему. Так:
1, Max Mustermann, 2019-05-22
1, Max Mustermann, 2019-05-20 (<- I don't want this row to appear.)
2, Ilse Meier,
Я тоже использовал LEFT JOIN
, чтобы получать клиентов без звонков.
Теперь я хочу получить этот результат только с последним вызовом.
Для одного звонка (чтобы получить последнюю информацию) я мог бы сделать:
SELECT * FROM calls ORDER BY call_date DESC LIMIT 1;
Я застрял. О чем мне нужно прочитать?
Вы можете использовать group by
и max()
, чтобы получить клиента с последним звонком. Когда клиент никогда не звонил, будет NULL
в Maxdateofcall
.
select
t1.customerid
,t1.customername
,max(t2.dateofcall) as Maxdateofcall
from table1 t1 left join table1 t2 on t1.customerid = t2.customerid
group by t1.customerid ,t1.customername
1, Max Mustermann, 2019-05-22
2, Ilse Meier, null