Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Ustawianie kolejnosci na podstawie innej tabeli
arfer
post
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 23.04.2012

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
sowiq
post
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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. [...]


Ten post edytował sowiq 4.01.2013, 16:09:27
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 10:14