napisałem sobie skrypt galerii, podział jest na kategorie (bez zdjęć) i foldery (zawierające zdjęcia i przypisane do dokładnie jednej kategorii). Każde zdjęcie posiada w swoim rekordzie (w bazie) zarówno ID folderu, jak i ID kategorii. Chciałbym jak najmniejszym obciążeniem bazy wyciągnąć listę kategorii z losowymi zdjęciami. Podczas, gdy samo wyciągnięcie listy to pikuś (SELECT *), to wyciągnięcie tych losowych zdjęć robi schody :/
struktura tabeli ze zdjęciami:
- id int primary
- kategoria int index
- folder int index
próbowałem m.in. tak:
SELECT DISTINCT(kategoria), id FROM zdjecia ORDER BY kategoria, RAND()
SELECT kategoria, id FROM zdjecia GROUP BY kategoria ORDER BY kategoria, RAND()
ale nic nie pomaga - nie ma pożądanego efektu "losowania". Chce, zeby z kazdej kategorii po jednym zdjeciu wylosowal... Podzapytania odpadają, nie mam też ochoty na łączenie tabel - wydajność...