Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL] Zapytanie SELECT i omijanie rekordów [GROU BY]
djpotwosss
post
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 1
Dołączył: 3.12.2008

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


Witam, mam następujący problem.
Mam bazę danych o strukturze:

name | data1
_________________________
7800 | 2015-07-24 09:57:33
7801 | 2015-07-24 09:59:33
7800 | 2015-07-24 09:55:33
7801 | 2015-07-24 09:51:33

itd rożne rekordy.

Chcę by wyświetlało w kolejności od najnowszej daty, grupująć według nazwy.
Chcę dostać coś takiego:

7801 | 2015-07-24 09:59:33
7800 | 2015-07-24 09:57:33 itd.

Mój problem polega na tym, że MYSQL pomija co drugi rekord prawidłowy. Np w tym przypadku wyświetla mi tylko 7800.. Zapytanie, które stosuje to:
  1. SELECT name, data1 FROM tabela GROUP BY name ORDER BY data1 DESC


Gdy wywale 'GROUP BY' oczywiście wyświetla normalnie, jednak nie grupuje. Jak sobie poradzić z tym GROU BY ?

Ten post edytował djpotwosss 24.07.2015, 15:04:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 807
Pomógł: 1828
Dołączył: 11.03.2014

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


Twoje zapytanie nie jest do końca poprawne, ponieważ wybiera "pierwszą lepszą" wartość data1 podczas grupowania. Powinno być zapytanie wybierające MAX(data1).
Jednak pod względem znikania danych obydwa zapytania są poprawne, tj. nie ma możliwości, aby podczas grupowania uciekły wszystkie wartości reprezentujące grupę (tu: 7801).
Proponuję abyś przetestował zapytanie/a na mniejszej liczbie rekordów, np. na 4-ech, które podałeś wyżej.
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: 14.10.2025 - 12:12