SELECT * FROM `news` LEFT JOIN `files` ON `fprefix` = `prefix` LEFT JOIN `node` ON `node_id` = `cat` WHERE `start` <= UNIX_TIMESTAMP() AND (`stop` >= UNIX_TIMESTAMP() OR `stop` = 0 ) AND `publish` = 1 AND `sticky` = 1 AND `lang` = '".$lang."' AND `ftype` = 'image' 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ę

SELECT * FROM `news` LEFT JOIN `files` ON `fprefix` = `prefix` AND `ftype` = 'image' AND ford = 0 LEFT JOIN `node` ON `node_id` = `cat` WHERE `start` <= UNIX_TIMESTAMP() AND (`stop` >= UNIX_TIMESTAMP() OR `stop` = 0 ) AND `publish` = 1 AND `sticky` = 1 AND `lang` = '".$lang."' 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?