SQL-запрос для получения новейшего вызова

Может ли кто-нибудь указать мне правильное направление, что мне нужно прочитать? ...

У меня есть две таблицы. 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;

Я застрял. О чем мне нужно прочитать?

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
0
38
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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

Другие вопросы по теме