![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 15 Dołączył: 15.11.2007 Skąd: Nowogród Bobrz. Ostrzeżenie: (0%) ![]() ![]() |
Zapytam, bo natknąłem się na taki ciekawy problemik.
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 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ą? Ten post edytował magnus 4.03.2008, 00:01:40 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 89 Pomógł: 5 Dołączył: 23.10.2006 Skąd: Gda?sk Ostrzeżenie: (0%) ![]() ![]() |
Ad 1. Ja bym sprobowal tak:
1 = 1 da true i wtedy warunek where bedzie prawdziwy nawet jesli user bedzie mial kilka zdjec i zadne domyslne. Ad 2. Nie mam zadnej bazy pod reka zeby stestowac czy dziala. Jesli piszesz to na mysql-u to bedziesz musial jeszcze obudowac podzapytanie, bo takie cos zawiesi serwer najprawdopodobniej (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ale na postgresie powinno smigac |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 15:24 |