Я начинающий в MySQL. Я пытаюсь запросить некоторые данные из базы данных телефонной карты voip, для которой мне необходимо присоединиться к нескольким таблицам. Это давало правильный результат, пока не было две таблицы левого соединения, но когда я добавил третью таблицу, столбец «общая продолжительность» дает неверный вывод.MySQL multiple Left Join получает неправильный вывод
Мой первый запрос выглядел так, и выход был в этом ScreenCap
select c.login,cname.Name,cname.LastName,DATE_FORMAT(Creation_Date,'%d-%m-%y')as regdate,DATE_FORMAT((Select max(call_start) from calls where calls.id_client = c.id_client),'%d-%m-%y') as lastcall, c.account_state,sum(cdr.duration/60) as total_duration from clientsshared as c
left join invoiceclients as cname on cname.IdClient = c.id_client
left join calls as cdr on cdr.id_client = c.id_client
where c.id_reseller='10' group by c.id_client order by total_duration desc limit 100
Новый запрос, как это который дает неверные результаты, пожалуйста, проверьте на ScreenCap
select c.login,cname.Name,cname.LastName,DATE_FORMAT(Creation_Date,'%m-%d-%y')as regdate,
(Select max(data) from payments where payments.id_client = c.id_client) as lastpayment,
(Select max(call_start) from calls where calls.id_client = c.id_client) as lastcall,
c.account_state,sum(cdr.duration/60) as total_duration from clientsshared as c
left join invoiceclients as cname on cname.IdClient = c.id_client
left join payments as p on p.id_client = c.id_client
left join calls as cdr on cdr.id_client = c.id_client
where c.id_reseller='10' group by c.id_client order by total_duration desc limit 100
Спасибо Мелани, я пробовал это, но не улучшился, можем ли мы думать о другом? – Hayan