Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ustawianie kolejnosci na podstawie innej tabeli
Forum PHP.pl > Forum > Bazy danych > MySQL
arfer
Witam,
Czy jest mozliwosc wyznaczenia kolejnosci wyswietlanych danych na podstawie wartosci z innej tabeli?

Mam baze gdzie dodaje wyniki i kazdy kolejny wynik ma narastajace ID. Nie dodaje ich jednak w kolejnosci od najstarszego tylko losowo a o tym z ktorego roku jest to wynik dowiaduje sie na podstawie osobnego kryterium numer_id ktore jest powiazane z osobna tabela gdzie do kazdego numeru_id przypisany jest rok. Numery_id tez nie sa ustawione w kolejnosci maja po prostu tylko przypisana date i na tej podstawie moge je uporzadkowac chronologicznie.

I teraz mam taka sytuacje ze chcialbym pobrac z bazy ostatni chronologicznie wynik ale zarowno jak ustawie kolejnosc na wynik_id jak i numer_id nie bede mial pewnosci ze jest to faktycznie najnowszy wynik. I stad moje pytanie czy mozna ustawic kolejnosc wykorzystujac do tego inna tabele tak jak np robi sie to z pobieranymi danymi:

SELECT miesiac_name FROM " . DB_WYNIKI . " LEFT JOIN ".DB_ROK." USING(miesiac_id)

Czyli w pobieranej tabeli nie mam nazwy miesiaca ale mam jego id wiec wykorzystujac druga tabele moge sobie je pobrac.

I teraz chcialbym ustawic kolejnosc

ORDER BY miesiac_id DESC LIMIT 1

Ale miesiac_id nie jest w tej tabeli co pobieram wyniki, jest jedynie kolumna numer_id ktora jest przyporzadkowana w osobnej tabeli do miesiaca. Czy mozna to jakos polaczyc? Czyli w moim przypadku cos w stylu:

ORDER BY miesiac_id LEFT JOIN ".DB_ROK." USING(numer_id) DESC LIMIT 1
sowiq
Poniżej masz przykład, bez problemu dostosujesz do swoich potrzeb:

  1. SELECT a.field1
  2. FROM table1 a
  3. JOIN table2 b ON b.id = a.field2
  4. ORDER BY b.field3 DESC


Jeśli nie jesteś do końca pewien, czy rozwiązanie działa poprawnie, zawsze możesz dla testów wyświetlić wszystkie kolumny:
  1. SELECT *
  2. [...]
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.