![]() |
![]() ![]() |
![]() |
-chang- |
![]()
Post
#1
|
Goście ![]() |
Witajcie, probuje stworzyc zapytanie ktore posortuje mi tematy wg czasu ostatniego dodanego postu korzystajac z 2 tabel. Nie jestem biegly w takich kombinacjach i na chwile obecna stworzylem szkielet takiego zapytania.
SELECT * FROM `tematy` ORDER BY (SELECT `czas` FROM `posty` WHERE `id_tematu` = xxx ORDER BY `czas` DESC) W podzapytaniu brakuje przynajmniej id aktualnego tematu by wiedzial jakie posty wybrac. |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Zdenormalizuj baze i zapisz czas dodania nowego postu w topiku == prostsza SQLka i szybsza przy duzym forum
Ten post edytował dr_bonzo 23.05.2008, 15:49:35 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 346 Pomógł: 23 Dołączył: 28.11.2004 Ostrzeżenie: (0%) ![]() ![]() |
Wg mnie nalezy unikac przechowywania redundantnych danych, a zapytanie troche zmodyfikowac.
Owe zapytanie posortuje Ci tematy wg daty ostatniego posta, im nowszy post w danym temacie tym temat wyzej. W tym przypadku zapytanie wybierze tylko id, ale wystarczy po pierwszym slowie SELECT dodac reszte interesujacych nas nazw kolumn. |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
no_face, unikac dopoki ich duplikacja sprawi ze aplikacja zacznie dizalac szybko, a nie zamulac sie przy byle joinie, przy 1000cach userow (patrz twitter, flickr.)
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 346 Pomógł: 23 Dołączył: 28.11.2004 Ostrzeżenie: (0%) ![]() ![]() |
W takiej sytuacji trzeba byloby zastosowac dodatkowe zapytanie aktualizujace wpis w tabeli topic z kazdym dodaniem nowego postu, co jednak wydaje sie i tak wydajniejsza metoda, niz JOIN'owac liste tematow.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.09.2025 - 04:40 |