bahh
19.08.2013, 09:32:30
Dzień dobry,
mam tablicę pobieraną za pomocą select do skryptu - tablica z kolumnami ip oraz czas.
Chcę by przy tablicy
-------------
| ip | czas |
-------------
| 1 | 212 |
| 1 | 213 |
| 1 | 214 |
| 2 | 211 |
| 2 | 212 |
Wyświetliło mi tylko ostatnie wystąpienie danego ip czyli wyświetliło mi tablicę
-------------
| ip | czas |
-------------
| 1 | 214 |
| 2 | 212 |
Jak sobie z tym poradzić? Pozdrawiam
freemp3
19.08.2013, 09:34:41
Należy użyć DISTINCT oraz zapewne ORDER BY.
bahh
19.08.2013, 09:51:07
więc daje takie zapytanie
SELECT DISTINCT `ip` FROM `xxx` WHERE YEAR(czas)='.date("Y").' AND MONTH(czas)='.date("m").' AND DAY(czas)='.date("d").' ORDER by `czas` DESC
ale chciałbym jeszcze pobrać czas poza distinct ip, jak powinno wyglądać zapytanie?
wstawiłem zamiast distinct group by, jednakże nie sortuje mi tablicy według order by
freemp3
19.08.2013, 09:58:30
W przypadku użycia DISTINCT możesz podać więcej niż jedną kolumnę tak jak podczas zwykłego SELECT:
Kod
SELECT DISTINCT `ip`, `czas` ...
bahh
19.08.2013, 10:01:09
wtedy wyświetla mi wszystkie rekordy, bez żadnego grupowania
memory
19.08.2013, 10:29:25
SELECT *,(SELECT czas from xxx as w WHERE w.ip = t.ip ORDER by czas DESC LIMIT 1) as ostaniczas FROM `xxx`as t WHERE YEAR(czas)='.date("Y").' AND MONTH(czas)='.date("m").' AND DAY(czas)='.date("d").' GROUP BY ip ORDER by `czas` DESC
lekka modyfkiacja
bahh
19.08.2013, 11:49:41
nadal wyświetla źle, ciągle sortuje według ip
memory
19.08.2013, 12:36:39
Pokaż wyniki i oczekiwane jakie mają być
freemp3
19.08.2013, 12:41:06
Dobrze by było gdybyś pokazał również całą strukturę tabeli
mmmmmmm
19.08.2013, 13:15:26
SELECT ip, Max(czas) AS czas FROM tabela GROUP BY 1
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.