Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Budowa odpowiedniego zapytania MySQL
Forum PHP.pl > Forum > Przedszkole
geniuuuu
Witam
po dłuższej przerwie wracam do nauki smile.gif

Z bazy przedstawionej na obrazku potrzebuję wybrać unikatowe wartości klient_id i jednocześnie najwyższe info_id należące dla danego klienta
LINK do bazy: baza.jpg

Przykład:
dla klient_id = 20 chciałbym obok zobaczyć tylko info_id równe 19
dla klient_id = 9 tylko info_id 13

Da się to napisać w jednym zapytaniu?

Poczytam o zagnieżdżaniu zapytań - przypuszczam że tam sprawa się wyjaśni jednak między czasie wszelkie wskazówki mile widziane smile.gif

Pozdrawiam
Kishin
  1. SELECT kliend_id ,max(info_id ) FROM testy
  2. GROUP BY kliend_id

cos takiego?
geniuuuu
I to było takie proste ?
facepalmxd.gif

Dzięki działa smile.gif

Dla przedstawionego problemu działa jednak przy wyświetlaniu pozostałych komórek wyniki są pomieszane :/

info_id jest obok odpowiedniego klient_id ale obok widnieje np wpis z innego info_id należącego do tego samego klient_id
Kishin
nie wiem czy dobrze zrozumiałem,
ale jeżeli chcesz wyciągnąć inne pola niż typu INT to zapytanie musi wyglądać nieco inaczej

  1. SELECT * FROM TESTY t WHERE t.info_id IN (SELECT max(c.info_id ) FROM testy c GROUP BY c.kliend_id )
geniuuuu
działa na końcu dopisałem sobie tylko order by

$query = ("SELECT * FROM crm_info t WHERE t.info_id IN (SELECT max(c.info_id ) FROM crm_info c GROUP BY c.klient_id ) ORDER BY t.info_id DESC");

Teraz zostaje mi się doszkolić co to to to biggrin.gif

Danke smile.gif
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.