Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z zapytaniem, kilka razy LEFT JOIN
_olo_1984
post
Post #1





Grupa: Zarejestrowani
Postów: 289
Pomógł: 77
Dołączył: 5.08.2006

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


witam

oto struktura tabel:

users:
id_user | login | ...

ithems:
id_ithem | id_user | ...

foto:
id_foto | id_ithem | ...

doc:
id_doc | id_ithem | ...

teraz chcę pobrać wszystkie ithemy, do każdego wyświetlić login usera, ilość foto i ilość doc

Moje zapytanie działające prawidłowo (ale nie mam ilości doc):
  1. SELECT i.*, u.login AS login, count(ff.id_foto) AS ile_foto
  2. FROM ".db_prefix."ithem AS i
  3. LEFT JOIN ".db_prefix."users AS u ON(i.id_user=u.id_user)
  4. LEFT JOIN ".db_prefix."foto AS ff ON(i.id_ithem=ff.id_ithem)
  5. GROUP BY i.id_ithem


i teraz keidy robię coś takiego:
  1. SELECT i.*, u.login AS login, count(ff.id_foto) AS ile_foto, count(dd.id_doc) AS ile_doc
  2. FROM ".db_prefix."ithem AS i
  3. LEFT JOIN ".db_prefix."users AS u ON(i.id_user=u.id_user)
  4. LEFT JOIN ".db_prefix."foto AS ff ON(i.id_ithem=ff.id_ithem)
  5. LEFT JOIN ".db_prefix."doc AS dd ON(i.id_ithem=dd.id_ithem)
  6. GROUP BY i.id_ithem


pokazuje głupoty. Błednie liczy ile_foto a ile_doc jest puste.
Byc może to banał ale nie mogę sobie poradzić.
Pozdr


--------------------
awake
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
melkorm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


eh. pomógłbym ale alfą i omegą nie jestem i nie lubei strzelać zapytaniami za to lubie przetestować zapytanie które podaje i wtedy jestem pewien że działa - do czego zmierzam : jeżeli chcesz dostać dobre zapytanie najlepiej dać strukture i wycinek bazy do testów wtedy takie osoby jak ja mogą sobie wrzucić to do bazy i odrazu zacząć testy ... bo tworzyć tabeli i danych dla każdego który prosi o pomoc, to mi się szczerze nei chce xP

Oczywiście są osoby które znają zapytania na blache i wiedzą co i jak i napsizą tobie 7 linijkowe zapytanie bez żadnego błędu biggrin.gif No ale cóż ja do takich nie należe i wole przetestować, a więc możesz podać zrzuty tabel i paru wierszy do każdej lub czekać na tą drugą grupe ludzi smile.gif Zrobisz jak Tobie wygodniej biggrin.gif


--------------------
Go to the top of the page
+Quote Post
_olo_1984
post
Post #3





Grupa: Zarejestrowani
Postów: 289
Pomógł: 77
Dołączył: 5.08.2006

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


leniwcze tongue.gif

problem rozwiązałem w ten sposób:
  1. SELECT i.*, u.login AS login, count(ff.id_foto) AS ile_foto, (SELECT count(d.id_ithem) FROM doc AS d WHERE d.id_ithem=i.id_ithem) AS ile_doc
  2. FROM ithem AS i
  3. LEFT JOIN users AS u ON(i.id_user=u.id_user)
  4. LEFT JOIN foto AS ff ON(ff.id_ithem=i.id_ithem)
  5. GROUP BY i.id_ithem


jeżeli ktoś mógłby mi wyjaśnić, czemu ten pierwszy sposób nie działa to bardzobym prosił.
Pozdr


--------------------
awake
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 02:42