Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Budowa odpowiedniego zapytania MySQL
geniuuuu
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 4.06.2008

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


Witam
po dłuższej przerwie wracam do nauki (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/smile.gif)

Pozdrawiam

Ten post edytował geniuuuu 23.01.2015, 13:46:41
Go to the top of the page
+Quote Post
Kishin
post
Post #2





Grupa: Zarejestrowani
Postów: 148
Pomógł: 17
Dołączył: 20.12.2011

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


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

cos takiego?
Go to the top of the page
+Quote Post
geniuuuu
post
Post #3





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 4.06.2008

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


I to było takie proste ?
(IMG:style_emoticons/default/facepalmxd.gif)

Dzięki działa (IMG:style_emoticons/default/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
Go to the top of the page
+Quote Post
Kishin
post
Post #4





Grupa: Zarejestrowani
Postów: 148
Pomógł: 17
Dołączył: 20.12.2011

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


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 )
Go to the top of the page
+Quote Post
geniuuuu
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 4.06.2008

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


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 (IMG:style_emoticons/default/biggrin.gif)

Danke (IMG:style_emoticons/default/smile.gif)
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: 16.09.2025 - 18:59