Mianowicie mam 2 tabelki:
- users: id_user, login
- pics: id_pic, id_user, sciezka, data_dodania, domyslny
(oczywiście w uproszczeniu).
Relacja 1 do wielu.
I chciałbym jednym zapytaniem wyświetlić np. 5 userów według jakiegoś warunku razem z domyślnym zdjęciem (jeśli ma domyślne). Jeśli nie ma w ogóle skojarzonych fotek, albo istnieje fotka domyślna (i też pod warunkiem, że jedna), to można tak:
Kod
SELECT u.login, p.sciezka
FROM users u
LEFT JOIN pics p
ON u.id_user = p.id_user
WHERE p.domyslny=1 OR p.id_pic is null
ORDER BY u.login
LIMIT 5
FROM users u
LEFT JOIN pics p
ON u.id_user = p.id_user
WHERE p.domyslny=1 OR p.id_pic is null
ORDER BY u.login
LIMIT 5
Ale jak to zrobić przy założeniu, że może być kilka fotek, ale żadna z nich nie powinna być wyświetlana??
2. Przy okazji - a jakim zapytaniem podłączyć z drugiej tabeli zawsze tylko jeden wiersz (lub żaden jeśli nie ma) - w powyższym przykładzie np. zawsze jeden rekord z 'pics' z największą datą?