Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> LEFT JOIN i Grupowanie wyników
potreb
post
Post #1





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Witam. Mam mały problem z zapytaniem:
  1. SELECT * FROM `news`
  2. LEFT JOIN `files` ON `fprefix` = `prefix`
  3. LEFT JOIN `node` ON `node_id` = `cat`
  4. WHERE `start` <= UNIX_TIMESTAMP() AND (`stop` >= UNIX_TIMESTAMP() OR `stop` = 0 )
  5. AND `publish` = 1
  6. AND `sticky` = 1
  7. AND `lang` = '".$lang."'
  8. AND `ftype` = 'image'
  9. ORDER BY `start` DESC, `ford` DESC LIMIT 0,4


Pobieram newsy oraz załączniki do newsa. Z tym że jeżeli nie ma żadnego załącznika do newsa wtedy nie zostaje wyświetlony.
Jeżeli mam kilka załączników do newsa o ftype = image nie sortuje ich wg pola ford od najnowszych.

Nie wiem za bardzo jak pobrać 4 newsy wraz z pierwszym najnowszym załącznikiem o typie image?
Próbowałem z GRUP BY id. Wtedy to pobiera raz newsa o danym id jeżeli jest więcej załączników niż jeden.



Dobrze udało mi się (IMG:style_emoticons/default/smile.gif) Tylko nie wiem czy dobrze.

  1. SELECT * FROM `news`
  2. LEFT JOIN `files` ON `fprefix` = `prefix` AND `ftype` = 'image' AND ford = 0
  3. LEFT JOIN `node` ON `node_id` = `cat`
  4. WHERE `start` <= UNIX_TIMESTAMP() AND (`stop` >= UNIX_TIMESTAMP() OR `stop` = 0 )
  5. AND `publish` = 1
  6. AND `sticky` = 1
  7. AND `lang` = '".$lang."'
  8. ORDER BY `start` DESC, `ford` DESC LIMIT 0,4


Nie wiem czy to jest optymalne, oczywiście wszystkich danych nie będę pobierał bo jest ich dużo. Czy to rozwiązanie jest dobre?
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 16:38