Witam wszystkich,
mam nadzieję, że ktoś skróci moje męki i udzieli mi odpowiedzi, bądź naprowadzi mnie na rozwiązanie mojego problemu.
Mianowicie mam 2 tabele:
tabela1:
dane kontaktowe (id, imię, nazwisko, itp.)
tabela2:
dane historii połączeń z danym klientem (id, id_klienta (tabela1), data, status) - tych rekordów może być kilka do jednego klienta.
Chciałbym, wiedzieć jak zdefiniować zapytanie, aby wyświetlić listę wszystkich klientów złączoną z tabelą połączeń w taki sposób, aby wiersze zawierały tylko i wyłącznie 1 status z ostatniego połączenia z tabeli2...
np.
tabela1:
id=1, imie=jan, nazwisko=kowalski
tabela2:
id=1, id_klienta=1, data=2014-01-05, status=3
id=2, id_klienta=1, data=2014-01-04, status=1
id=3, id_klienta=1, data=2014-01-03, status=4
id=4, id_klienta=1, data=2014-01-02, status=2
id=5, id_klienta=1, data=2014-01-01, status=1
zamierzony efekt:
id=1, imie=jan, nazwisko=kowalski, status=3 (najnowszy wpis z tabeli2)
aktualnie mam coś takiego:
SELECT * FROM customers a
left outer JOIN calls b ON a.id = b.customer_id
where ...
order by ...;
jednak to wywołanie powoduje wyświetlenie zdublowanych wartości z tabeli klientów...
Będę wdzięczny za pomoc, bo już wystarczająco dużo czasu na to straciłem,
Pozdrawiam