![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 9.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam
mam w bazie 2 tabele: "dzialki" - w której są numery wszystkich działek "sprzedaz" - w której są zapisywane informacje o sprzedażach działek dzialki: |id_dz | nr_dzialki | | 1 | 815/2 | | 2 | 820/1 | sprzedaz: | id | id_dz | cena | data_sprzedazy | | 1 | 2 | 450 | 2010-05-15 | | 2 | 2 | 500 | 2010-08-20 | Jeżeli działka zostaje sprzedana to w tabeli "sprzedaz" zostaje zapisywana cena i data sprzedaży, czyli niektóre działki będą miały kilka rekordów w tabeli sprzedaż a inne wcale Problem polega na tym że: chcę wyciągnąć informacje o wszystkich działkach ale tak żeby dla konkretnej działki zwracało tylko informacje o ostatniej sprzedaży (cena, data) a jeżeli działka nie była sprzedawana to żeby zwróciło null. próbowałem takiego zapytania:
ale gdy działka była sprzedawana 2 razy to wyciąga mi tą działkę 2 razy i nie wiem jak to ograniczyć żeby każdą działkę wyciągało tylko raz z informacjami z ostatniej sprzedaży. Proszę o pomoc. Jak coś źle to z góry przepraszam. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Ogólnie kombinujesz w dobrą stronę. Jest to left join tabeli działek z tabelą sprzedaży, ale musisz użyć grupowania po id działki. Problemem niestety jest uzyskanie proste daty i kwoty ostatniej sprzedaży. Group by przekazuje bowiem w wyniku pierwszy pasujący do złączenia rekord, a następne olewa. Aby więc to zadziałało to powinieneś tabelę sprzedaży podać mu "odwróconą" (IMG:style_emoticons/default/smile.gif)
Wywaliłbym niepotrzebne rzeczy z SELECTA oraz użył jakiegoś klucza PRIMARY lub jakiegokolwiek, który pozwala mi szybko odwrócić tabelę sprzedaży według kolejności od najmłodszej do najstarszej. Nie znam struktury więc użyłem tu DATA_SPRZEDAZY, choć zapewne nie masz na niej indeksu. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 9.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki wszystko mi teraz śmiga (IMG:style_emoticons/default/yahoo.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 14:18 |