![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 1 Dołączył: 10.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Jakiś czas męczę się z zapytaniem. Chcę zrobić ranking punktów i w tym celu pobrać informacje z kilku tabel. Chcę wyciągnąć takie dane: id, postac, skarb, suma regiment_ilosc, suma budynek_ilosc. Wszystko posortowane wedlug id usera i bez powtorzen. users id | postac | skarb oddzialy oddzial_id | user_id regimenty oddzial_id | SUM(regiment_ilosc) budynki user_id | SUM(budynek_ilosc) Jak najprościel to zrobić? Próbowałem kilkoma metodami: <!--Geshi:323869:php--><pre class="php-brief" style="font-family:monospace;"><div class="head">[PHP] <span class="kw3">JOIN</span> <span class="re0">$oddzialy_users_tbl</span> o ON o<span class="sy0">.</span>oddzial_id<span class="sy0">=</span>r<span class="sy0">.</span>oddzial_id GROUP BY o<span class="sy0">.</span>oddzial_user_id</div><li class="li2"><div class="de2"> <span class="br0">)</span> w</div><li class="li1"><div class="de1"> WHERE u<span class="sy0">.</span><span class="kw3">stat</span><span class="sy0">=</span><span class="st0">'ok'</span> GROUP by u<span class="sy0">.</span>id</div> [/list]<div class="foot">[PHP] <a href='./Pobierz-Plik-323870.html' target='_blank_t0'>bl</span> u LEFT <span class="kw3">JOIN</span> <span class="re0">$oddzialy_users_tbl</span> o ON o<span class="sy0">.</span>oddzial_user_id<span class="sy0">=</span>u<span class="sy0">.</span>id LEFT <span class="kw3">JOIN</span> <span class="re0">$regimenty_users_tbl</span> r ON r<span class="sy0">.</span>oddzial_id<span class="sy0">=</span>o<span class="sy0">.</span>oddzial_id LEFT <span class="kw3">JOIN</span> <span class="re0">$budynki_users_tbl</span> b ON b<span class="sy0">.</span>user_id<span class="sy0">=</span>u<span class="sy0">.</span>id WHERE u<span class="sy0">.</span><span class="kw3">stat</span><span class="sy0">=</span><span class="st0">'ok'</span> GROUP by u<span class="sy0">.</span>id</div> [/list]<div class="foot">[PHP] [topic=0]bl</span> r LEFT <span class="kw3">JOIN</span> <span class="re0">$oddzialy_users_tbl</span> o ON o<span class="sy0">.</span>oddzial_id<span class="sy0">=</span>r<span class="sy0">.</span>oddzial_id GROUP BY o<span class="sy0">.</span>oddzial_user_id</div><li class="li2"><div class="de2"> <span class="br0">)</span> w</div><li class="li1"><div class="de1"> WHERE u<span class="sy0">.</span><span class="kw3">stat</span><span class="sy0">=</span><span class="st0">'ok'</span> GROUP by u<span class="sy0">.</span>id</div> [/list]<div class="foot">[PHP] <a href='./Pobierz-Plik-323870.html' target='_blank, <a href='Plaintext-323870.html' target='_blank_t0'>bl</span> r LEFT <span class="kw3">JOIN</span> <span class="re0">$oddzialy_users_tbl</span> o ON o<span class="sy0">.</span>oddzial_id<span class="sy0">=</span>r<span class="sy0">.</span>oddzial_id GROUP BY o<span class="sy0">.</span>oddzial_user_id</div><li class="li2"><div class="de2"> <span class="br0">)</span> w</div><li class="li1"><div class="de1"> WHERE u<span class="sy0">.</span><span class="kw3">stat</span><span class="sy0">=</span><span class="st0">'ok'</span> GROUP by u<span class="sy0">.</span>id</div> [/list]<div class="foot">[PHP] <a href='./Pobierz-Plik-323870.html' target='_blank_t0'>bl</span> u LEFT <span class="kw3">JOIN</span> <span class="re0">$oddzialy_users_tbl</span> o ON o<span class="sy0">.</span>oddzial_user_id<span class="sy0">=</span>u<span class="sy0">.</span>id LEFT <span class="kw3">JOIN</span> <span class="re0">$regimenty_users_tbl</span> r ON r<span class="sy0">.</span>oddzial_id<span class="sy0">=</span>o<span class="sy0">.</span>oddzial_id LEFT <span class="kw3">JOIN</span> <span class="re0">$budynki_users_tbl</span> b ON b<span class="sy0">.</span>user_id<span class="sy0">=</span>u<span class="sy0">.</span>id WHERE u<span class="sy0">.</span><span class="kw3">stat</span><span class="sy0">=</span><span class="st0">'ok'</span> GROUP by u<span class="sy0">.</span>id</div> [/list]<div class="foot">[PHP] [topic=0]bl</span> r LEFT <span class="kw3">JOIN</span> <span class="re0">$oddzialy_users_tbl</span> o ON o<span class="sy0">.</span>oddzial_id<span class="sy0">=</span>r<span class="sy0">.</span>oddzial_id GROUP BY o<span class="sy0">.</span>oddzial_user_id</div><li class="li2"><div class="de2"> <span class="br0">)</span> w</div><li class="li1"><div class="de1"> WHERE u<span class="sy0">.</span><span class="kw3">stat</span><span class="sy0">=</span><span class="st0">'ok'</span> GROUP by u<span class="sy0">.</span>id</div> [/list]<div class="foot">[PHP] <a href='./Pobierz-Plik-323870.html' target='_blank, <a href='Plaintext-323870.html' target='_blank </div></pre><!--/Geshi:323870:php--> Tu próbowałem pobrać z zagnieżdżonym select'em, ale już przy pobieraniu samej ilosci zolnierzy napotkałem błąd, a mianowicie nie bierze pod uwagę tego w pętli while i dla każdego usera wyświetla tą samą ilość jaka jest u pierwszego (tak jakby nie brało pod uwagę GROUP by. Miałem jeszcze kilka innych pomysłów ale nie warte wspominania bo wyświetlało je z błędem. Ma ktoś jakiś pomysł? // EDIT Poradziłem sobie w zupełnie inny sposób - na tablicach. Można zamknąć. Ten post edytował TheRiko 6.04.2012, 19:32:10 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 05:30 |