Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Chronologia z dwóch tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
rafik73
Witam
Kwestia następująca. Dwie tabele: owoce i sprzedane_owoce.
W tabeli owoce: id_owoc, nazwa_owoc
w tabeli sprzedane_owoce: data_transakcji, id_owoc_sprzedany.
id_owoc = id_owoc_sprzedany
W kontrolce select chcę wyświetlać nazwa_owoc (wg id_owoc) ułożone chronologicznie wg data_transakcji.
Próbowałem z MAX, ale problem w tym, że nie wszystkie owoce z tabeli owoce występują w sprzedane_owoce.
javafxdev
to co się ma stać jeżeli dany owoc jeszcze nigdy nie został sprzedany?
rafik73
Ma być wyświetlony na liście jako ostatni, jeśli jest ich kilka to ułożone wg alfabetu. Cała zagwozdka w tym, że data występuje tylko w jednej tabeli.
trueblue
Z palca:
  1. SELECT o.id_owoc,o.nazwa_owoc
  2. FROM owoce AS o
  3. LEFT JOIN sprzedane_owoce AS so ON so.id_owoc_sprzedany=o.id_owoc
  4. ORDER BY IFNULL(os.data_transakcji,0,1) DESC,os.data_transakcji,o.nazwa_owoc

jeśli nie masz sprzedaży w przyszłości, to:
  1. SELECT o.id_owoc,o.nazwa_owoc
  2. FROM owoce AS o
  3. LEFT JOIN sprzedane_owoce AS so ON so.id_owoc_sprzedany=o.id_owoc
  4. ORDER BY COALESCE(os.data_transakcji,DATE_ADD(CURDATE(),INTERVAL 1 DAY)),o.nazwa_owoc
javafxdev
@trueblue a czemu nie ORDER BY ISNULL(os.data_transakcji) tylko IFNULL(...)?
trueblue
javafxdev,
bo nie przyszło mi do głowy to rozwiązanie w momencie kiedy pisałem.
rafik73
Dziękuję panowie, tego ISNULL mi brakło smile.gif
trueblue
javafxdev pomógł.
rafik73
no w sumie pomoc w duecie
javafxdev
ja raczej nie pomogłem, zadałem dwa pytania wink.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.