Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Podzapytania z użyciem MAX, dlaczego operator "=" nie działa?
qweluke
post
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 25.03.2010
Skąd: Radom

Ostrzeżenie: (10%)
X----


Witam,

Takim zapytaniem
  1. SELECT uzytkownicy.id, MAX( graf.id_graf ) AS maksik, id_uzytkownika, id_graf, miesiac
  2. FROM `graf` , `uzytkownicy`
  3. WHERE uzytkownicy.id = graf.id_uzytkownika
  4. AND id_graf = 'maksik'
  5. GROUP BY uzytkownicy.id
  6. ORDER BY nazwisko ASC


Dostaje coś takigo
(IMG:http://i.imgur.com/2mL6M.jpg)

Co oczywiście jest nieprawdą, gdyż przy użyciu takiego zapytania

  1. SELECT uzytkownicy.id, MAX( graf.id_graf ) AS maksik, id_uzytkownika, id_graf, miesiac
  2. FROM `graf` , `uzytkownicy`
  3. WHERE uzytkownicy.id = grafik.id_uzytkownika
  4. GROUP BY uzytkownicy.id
  5. ORDER BY nazwisko ASC


zwraca mi:
(IMG:http://i.imgur.com/ENHzq.jpg)


A tak wygląda tabela "graf":
(IMG:http://i.imgur.com/Ok9We.jpg)

---------------------------------------
1. Ktoś mi może wytłumaczyć dlaczego porównanie z pierwszej opcji nie wyciąga prawidłowych danych?
2. Jak zatem powinno brzmieć zapytanie, aby dla każdego użytkownika pobrać wpis gdzie id_graf jest największe?

Ten post edytował qweluke 20.09.2011, 12:44:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
qweluke
post
Post #2





Grupa: Zarejestrowani
Postów: 87
Pomógł: 0
Dołączył: 25.03.2010
Skąd: Radom

Ostrzeżenie: (10%)
X----


a moge was prosic o jakas podpowiedz jak takie pytanei zadać?
Bo męczę się z tym HAVING ale za każdym razem zwraca mi tylko jeden rekord a nie dla wszystkich id_uzytkownika

probowalem tez podzapytan


  1. SELECT uzytkownicy.id, id_uzytkownika, id_graf, miesiac,
  2. FROM `graf` , `uzytkownicy`
  3. WHERE uzytkownicy.id = graf.id_uzytkownika
  4. AND id_graf = (SELECT MAX( graf.id_graf) FROM graf, uzytkownicy WHERE uzytkownicy.id=graf.id_uzytkownika GROUP BY uzytkownicy.id)
  5. GROUP BY uzytkownicy.id
  6. ORDER BY nazwisko ASC


ale dostaje informacje, ze
  1. Subquery returns more than 1 row

co oczywiście jest prawdą gdyż podzapytanie zwraca wszytkie MAX'y (dla każdego użytkownika)

Ten post edytował qweluke 20.09.2011, 12:08:34
Go to the top of the page
+Quote Post

Posty w temacie


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: 23.12.2025 - 02:33