Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: tabela samochodów + tabela wypożyczeń
Forum PHP.pl > Forum > Bazy danych
TomASS
Hej, mam dwie tabele

1. samochody [ID, NrRej, Marka, Kolor....]
2. wypożyczenia [ID, ID_samochod, ID_klient, DataWypozyczenia, MiejsceDoceloweKod, MiejsceDoceloweMiasto, MiejsceDoceloweUlica....]

jeśli klient wypożycza autko, do tabeli wypożyczeń dodawany jest rekord, gdy jakiś inny klient weźmie ten sam pojazd - kolejny wpis wędruje do tabeli wypożyczeń - dzięki temu mam całą historię. Wpis o najnowszej dacie mówi mi gdzie aktualnie jedzie/znajduje się pojazd oraz u jakiego klienta.


Czy możecie naprowadzić mnie na trop, jak wyciągnąć teraz wszystkie pojazdy będące w posiadaniu klienta od ID_klient=100, wraz ze spisem Marki, aktualne Miejscowości itp.... trudnością jest tutaj, że klient może "po sobie" wypożyczyć auto tylko do innego miejsca, wówczas powinien na liście znaleźć się jeden wpis z aktualną miejscowością.

Dzięki
eccocce
Robisz SELECT z tabeli `wypożyczenia`, łączysz tę tabelę (JOIN) z tabelą `samochody` po komórkach `ID_samochod` i `ID, później pewnie powinieneś dodać jakieś warunki (WHERE), ale tutaj za wiele nie pomogę, bo szczerze mówiąc nie bardzo rozumiem, o co chodzi z tym:
Cytat
trudnością jest tutaj, że klient może "po sobie" wypożyczyć auto tylko do innego miejsca, wówczas powinien na liście znaleźć się jeden wpis z aktualną miejscowością.

tongue.gif
TomASS
Już tłumaczę - chodzi o to, że klient wypożyczający auto do Warszawy, ma możliwość pożyczenia później tego samego auta do np. Krakowa.
Wówczas będą dwa wpisy w tabeli wypożyczenia. Mnie interesuje to najświeższe. Jak zrobię JOINa to wyświetlą mi się wszystkie wypożyczenia tego klienta - a ja chcę tylko najświeższe z danego auta.

rekord w tabeli samochody:
ID=1 NrRej=DW00001


rekord w tabeli wypozyczenia
ID=1; ID_pojazd=1; ID_klient=1; Miejsce=Wrocław; Data=2010-06-06
ID=2; ID_pojazd=1; ID_klient=1; Miejsce=Warszawa; Data=2010-06-07
ID=3; ID_pojazd=1; ID_klient=1; Miejsce=Kraków; Data=2010-06-08

chciałby dostać wynik, że klient o ID_klienta=1 ma w posiadaniu takie i takie auta do takiej miejscowości, czyli w tym wypadku jedynym wynikiem byłoby
DW 0001, Kraków

może jeszcze inaczej winksmiley.jpg


Mam sobie rekordy

ID=1; ID_pojazd=1; ID_klient=1; Miejsce=Wrocław; Data=2010-06-06
ID=2; ID_pojazd=1; ID_klient=1; Miejsce=Warszawa; Data=2010-06-07
ID=3; ID_pojazd=1; ID_klient=1; Miejsce=Kraków; Data=2010-06-08
ID=4; ID_pojazd=2; ID_klient=1; Miejsce=Szczecin; Data=2010-06-03
ID=5; ID_pojazd=2; ID_klient=1; Miejsce=Gdynia; Data=2010-06-17
ID=6; ID_pojazd=2; ID_klient=1; Miejsce=Katowice; Data=2010-06-18

Chciałbym wybrać te rekordy, które dla każdego pojazdu mają największą wartość data, czyli
dla pojazdu ID_pojazd=1 największą datą jest 2010-06-08 dla ID_pojazd=2 największą datą jest 2010-06-18 czyli wynik chcę dostać:
ID=6; ID_pojazd=2; ID_klient=1; Miejsce=Katowice; Data=2010-06-18
ID=3; ID_pojazd=1; ID_klient=1; Miejsce=Kraków; Data=2010-06-08
eccocce
Spróbuj tego:
  1. SELECT id, id_poj, id_kl, max(DATA )
  2. FROM wypozyczenia
  3. GROUP BY id_poj

Wprowadziłem własne nazwy kolumn, ale chyba wiadomo, co jest co smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.