Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Znalezienie usera do zapytania COUNT
lexis72
post
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 25.02.2013

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


Witam,
mam takie zapytanie:

  1. (SELECT COUNT(numer) FROM ".DB_WYNIKI." WHERE kategoria_id='".$_GET['kategoria_id']."' AND numer=1 GROUP BY user_id ORDER BY COUNT(user_id) DESC LIMIT 1) AS usert,


ktore liczy userow ktorzy w bazie maja najwiecej rekordow z numerem 1. Zapytanie dziala i poprawnie znajduje ta liczbe ale nie moge sobie poradzic jak do tego dodac zapytanie ktore pokaze jaki user ma tych rekordow najwiecej. Dodam ze konstrukcja zapytania zmusila mnie do zrobienia SELECTA w SELECTCIE przez co dodanie obok user_id w petli odpada. Potrzebuje nowe zapytanie SELECT zamkniete w nawiasie tak jak podane wyzej. Pomoze ktos?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
bpskiba
post
Post #2





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

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


  1. SELECT COUNT(numer) ,user_id
  2. FROM ".DB_WYNIKI."
  3. WHERE
  4. kategoria_id='".$_GET['kategoria_id']."' AND numer=1
  5. GROUP BY user_id
  6. ORDER BY COUNT(user_id) DESC
  7. LIMIT 1
Go to the top of the page
+Quote Post
lexis72
post
Post #3





Grupa: Zarejestrowani
Postów: 124
Pomógł: 0
Dołączył: 25.02.2013

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


Napisalem ze z racji rozbudowanego zapytania SELECT (jest kilkanascie roznych zapytan) nie dalo sie polaczyc tego w jedno dlatego te zapytanie napisalem w formie podzapytania w nawiasie ktore jest niezalezne od reszty. Gdyby chodzilo tylko o znalezie tego i usera to nie byloby problemu ale do znalezienia jest znacznie wiecej rzeczy i musialem je oddzielic bo maja rozne WHERE'y.

Dla zobrazowania mam cos w stylu:

Cytat
(SELECT COUNT(numer) FROM ".DB_WYNIKI." WHERE kategoria_id='".$_GET['kategoria_id']."' AND numer=1 GROUP BY user_id ORDER BY COUNT(numer) DESC LIMIT 1) AS usert,
(SELECT COUNT(numer) FROM ".DB_WYNIKI." WHERE kategoria_id='".$_GET['kategoria_id']."' AND numer=2 GROUP BY user_id ORDER BY COUNT(numer) DESC LIMIT 1) AS userk,
(SELECT COUNT(numer) FROM ".DB_WYNIKI." WHERE kategoria_id='".$_GET['kategoria_id']."' AND numer=3 GROUP BY user_id ORDER BY COUNT(numer) DESC LIMIT 1) AS userw,

i dla kazdego tego zapytania jest inny user i musze go znalezc. Jak odnalezc usera do tych zapytan?

Ten post edytował lexis72 26.12.2013, 19:03:48
Go to the top of the page
+Quote Post
bpskiba
post
Post #4





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

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


Przyjacielu......
dlaczego koniecznie chcesz koniecznie uzyskać te wyniki w osobnych kolumnach?(IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) ?
gdybyś zrezygnował z tego ograniczenia wystarczyło by ... group by user_id, numer

wygląda na to, że problem polega na sposobie myślenia, a nie na znajomości SQL. Ten efekt można osiągnąć jednym zapytaniem, ale trzeba zmienić podejście

Ten post edytował bpskiba 26.12.2013, 21:38:23
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: 22.08.2025 - 21:24