Я пытаюсь создать запрос, чтобы получить последнюю запись, которую можно использовать в MySQL, Oracle 10 и 12.
Сценарий: у меня есть 4 таблицы - клиент, адрес, кредит, приложение, которое я хотелсоедините эти 4 таблицы, чтобы получить имя клиента и адрес для приложения.
клиент, кредит и приложение имеют отношение 1 к 1, а клиент и адрес имеют отношение 1 ко многим.
select count(c.name)
from application
left join loan on (loan.id = application.id)
inner join customer on (loan.cust_num = customer.id);
Это дает 100 строк;
select count(c.name)
from application
left join loan on (loan.id = application.id)
inner join customer on (loan.cust_num = customer.id)
inner join address a1 on (loan.cust_num = address.cust_num)
inner join (
select max(date) as max_date, cust_num
from address
where address_type = 'studio'
group by cust_num
) a2
on a1.cust_num = a2.cust_num
and a1.date = a2.max_date;
Это дает 200 записей, так как в адресе на дату существует более 1 записи, для которой address_type является 'studio' для клиента.
Как получитьпоследняя запись.
В конце я хотел получить адресные столбцы из таблицы адресов и имя из таблицы клиентов для приложения.
Спасибо.