Problem jest następujący:
próbuje dodać do komponentu remository joomli(seria przed 1.5) sortowanie plików po ocenie zamiast po id. Domyślnie jest możliwe sortowanie po id, nazwi, ilośc pobrań i dacie dodania. Z tym nie ma problemu, bo wszytskie te dane znajdują się w jednej tabli, order by i po sprawie. Natomiast spory problem rodzi się przy próbie sortowania po ocenie. Oceny sa w innej tabeli( jos_downloads_log) niż pliki (jos_downloads_files), w dodatku tabela ta nie zawiera tylko i wyłącze ocen, ale także inne, bliżej nieokreslone dla mnie dane. Oceny mają w tabeli jos_downloads_log i kolumnie type wartość 3, natomiast pole value okeśla wagę głosu, pole fileid id pliku do jakiego głos się odnosi.
Próbowałem to zrobić tak:
SELECT * FROM jos_downloads_files LEFT JOIN jos_downloads_log ON jos_downloads_files.id = jos_downloads_log.fileid WHERE jos_downloads_files.containerid =5 AND published =1 GROUP BY fileid ORDER BY IF( (jos_downloads_log.type = 3), AVG(jos_downloads_log.value), 0);
ale nie daje to czekiwanych rezultatów, zwraca tylko wyniki które mają (jos_downloads_log.type = 1.
Nie wiem, czy nie przekombinowałem z tym złączeniem, na początku był zamysł, aby pobierać wartość oceny jako jedno z pól i potem to sortować wg. tego, ale nic z tego.
Wydaje mi się, że zrobienie tego po stronie sql jest po prostu fizycznie niemozłiwe, swoją drogą cała bada danych tego ledwo się trzyma kupy, ale ma to być tylko rozwiązanie tymczasowe.
Czy istnieje jakiś sposób na sortowanie wg. podanego warunku?