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ę 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?