Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z zapytaniem
milupo2nd
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 12.08.2004

Ostrzeżenie: (0%)
-----


Witam,
Mam problem z zapytaniem, ktory rysuje sie nastepujaco:
Sa trzy tabele: userzy,userzy_maja_zdjecia i zdjecia. Problem polega na tym ze chce wyciagnac: idusera, imie i tytul_zdjecia ale tylko jesli jest to zdjecie domyslne (czyli w tabeli userzy_maja_zdjecia pole default jest rowne Y) w przeciwnym wypadku tutul_zdjecia ma byc NULL. Jak to zrobic?
Za nic nie moge wykminic takiego zapytania. Powiem jeszcze ze moze sie tak zdarzyc ze niektorzy userzy moga w ogole nie miec zdjec albo moga miec zdjecia ale nie maja ani jednego ustawionego w polu domyslne na Y. (dodam ze dla jednego usera moze byc tylko jedno zdjecie z ustawionym polem domyslne na Y)
Probowalem juz left join ale cos to mi nie wychodzi (tzn. bierze pierwsze lepsze zdjecie zamiast tylko to z flaga domyslne:Y)
Jakies sugestie?

  1. --------------------------
  2. userzy
  3. (user_id,imie)
  4. --------------------------
  5. 1 , janek
  6. 2 , piotrek
  7. 3 , pawel
  8. --------------------------


  1. ---------------------------------
  2. userzy_maja_zdjecia
  3. (user_id, foto_id, domyslne)
  4. ---------------------------------
  5. 1 , 1 , Y
  6. 1 , 2 , N
  7. 2 , 3 , N
  8. 2 , 4 , Y
  9. 3 , 5 , N
  10. ---------------------------------


  1. ---------------------------------
  2. zdjecia
  3. (foto_id, tytul_zdjecia)
  4. ---------------------------------
  5. 1 , fota1
  6. 2 , fota2
  7. 3 , fota3
  8. 4 , fota4
  9. 5 , fota5
  10. ---------------------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
kefirek
post
Post #2





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


  1. SELECT u.user_id, u.imie,
  2. CASE domyslne WHEN 'Y' THEN tytul_zdjecia ELSE '' END AS foto
  3. FROM userzy_maja_zdjecia mz LEFT JOIN zdjecia z ON mz.foto_id=z.foto_id
  4. LEFT JOIN userzy u ON mz.user_id=u.user_id


Chyba o takie coś chodziło ?

Zapytanie takie zwróci
(IMG:http://www.gc.boo.pl/zap.JPG)

Ten post edytował kefirek 1.02.2009, 10:32:20
Go to the top of the page
+Quote Post
milupo2nd
post
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 12.08.2004

Ostrzeżenie: (0%)
-----


wiekie dzieki ale kurcze nie do konca to jest to o co mi chodzilo... bo jesli nie ma rekordu w users_has_photos to taki user jest pomijany w wynikach (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

p.s.
Zrobilem cos takiego tylko nie wiem czy to jest dobrze:

  1. SELECT * FROM users LEFT JOIN users_has_photos ON (users.iduser=users_has_photos.iduser AND DEFAULT='Y')
  2. LEFT JOIN photos ON users_has_photos.idphoto=photos.idphoto
  3. GROUP BY users.iduser


Ten post edytował milupo2nd 1.02.2009, 10:49:41
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.12.2025 - 19:29