[MySQL] Konstrukcja zapytania

0

Witam!
Mam tabele Cos(ID,Date,Expire,Type,User,Patient)

i chciałbym pobrać dane dla najnowszej Date dla każdego Patient w powiązaniu z Type

A. Przykładowe dane
ID| DATE | EXPIRE | TYPE | USER | PATIENT |

1 | 2006-01-01 | 2007-01-01 | 1 | Adam | 100 |
2 | 2006-01-02 | 2007-01-02 | 2 | Adam | 100 |
3 | 2007-01-01 | 2007-01-01 | 1 | Adam | 100 |
4 | 2007-01-02 | 2007-01-02 | 2 | Adam | 100 |
5 | 2006-02-01 | 2002-01-01 | 1 | Adam | 101 |
6 | 2006-02-02 | 2002-01-02 | 2 | Adam | 101 |
7 | 2007-02-01 | 2002-01-01 | 1 | Adam | 101 |
8 | 2007-02-02 | 2002-01-02 | 2 | Adam | 101 |

B. Wynik jaki bym chciał uzyskać to:
ID| DATE | EXPIRE | TYPE | USER | PATIENT |

3 | 2007-01-01 | 2007-01-01 | 1 | Adam | 100 |
4 | 2007-01-02 | 2007-01-02 | 2 | Adam | 100 |
7 | 2007-02-01 | 2002-01-01 | 1 | Adam | 101 |
8 | 2007-02-02 | 2002-01-02 | 2 | Adam | 101 |

Wiersz A3 ma nowszą DATE dla TYPE 1 i dla PATIENT 100 niż wiersz A1 dlatego idzie do wyników

Wiersz A4 ma nowszą DATE dla TYPE 2 i dla PATIENT 100 niż wiersz A2 dlatego idzie do wyników

Wiersz A7 ma nowszą DATE dla TYPE 1 i dla PATIENT 101 niż wiersz A5 dlatego idzie do wyników

Wiersz A8 ma nowszą DATE dla TYPE 2 i dla PATIENT 101 niż wiersz A5 dlatego idzie do wyników
itd.

Będę bardzo wdzięczny za pomoc w konstrukcji zapytania.</b>

0

Jeżeli chcesz wyciągać takie dane jednym zapytaniem, to AFAIK muszą one być umieszczone w dwóch tabelach np:

Cos(ID, Date, User, Type, Patient)
Cos2(ID, Date, Expire, Type, Patient)

i wtedy:

SELECT a.`ID`, a.`Date`, b.`Expire`, a.`Type`, b.`User`, a.`Patient`
  FROM `Cos` a LEFT JOIN `Cos2` b ON (a.`Type` = b.`Type` AND a.`Patient` = b.`Patient`)
 WHERE a.`User` = 'Adam' AND a.`Date` > b.`Date`;

daje pożądany wynik :-)

0

W końcu tez stwierdziłem ze bez drugiej tabeli sie nie obedzie i w drugiej przechuwuje id aktualnej daty i jej typ dla każdego patient.
Dzięki za zainteresowanie!

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0