Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL,mySQL] Specyficzny LIMIT przy LEFT JOINie, czy da się zbudować takie zapytanie
pi_wo
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 6
Dołączył: 18.03.2009

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


Mam do was prośbę o pomoc, bo chyba zaćmiło mi umysł,

Jak zrobić następujące zapytanie:

mam 2 tabele:

klient
i
zakupiony_towar

  1. SELECT zakupiony_towar LEFT JOIN klient WHERE data_zakupu BETWEEN [i]$jakas_data1[/i] AND [i]$jakas_data2[/i] ORDER BY klient.nazwa ASC, zaklupiony_towar.data_zakupu DESC


Chcę do tego dołożyć 'LIMIT', np LIMIT 0,20 - jednak nie na ilość zwróconych rekordow calego zapytania, a na ilosc unikatowych identyfikatorow w tabeli klient (czyli na ilosc klient'ow).

Czy da się coś takiego w ogole zrobić w jednym zapytaniu?

W samej aplikacji chodzi mi oczywiście o stronnicowanie, ale nie po ilości rekordow zapytania , tylko ilosci wyswietlanych klientow - oczywiscie , mógłbym to rozwiązać w minimum 2 zapytaniach (najpierwsz lista klientow , a dopiero pozniej przyporządkowane im rekordy z data_zakupu dla wybranych kryteriow, ale 1 zwrocona tablica bylaby dla mnie o wiele wygodniejsza).

Help

Ten post edytował pi_wo 4.03.2011, 12:01:39
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wiiir
post
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 34
Dołączył: 22.02.2010

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


pisane z palca ale powinno dzialac (IMG:style_emoticons/default/smile.gif)
nazwy pol tak intuicyjnie napisalem wiec zmien na prawidlowe

  1. SELECT zakupiony_towar
  2. FROM zakupiony_towar,
  3. (SELECT id_klienta, nazwa_klienta
  4. FROM
  5. klient
  6. LIMIT 0,20)
  7. WHERE id_klienta = zakupiony_towar.id_klienta
  8. ORDER BY nazwa_klienta ASC, zaklupiony_towar.data_zakupu DESC


Ten post edytował wiiir 6.03.2011, 21:42:38
Go to the top of the page
+Quote Post
pi_wo
post
Post #3





Grupa: Zarejestrowani
Postów: 36
Pomógł: 6
Dołączył: 18.03.2009

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


Cytat(wiiir @ 6.03.2011, 21:39:53 ) *
pisane z palca ale powinno dzialac (IMG:style_emoticons/default/smile.gif)
nazwy pol tak intuicyjnie napisalem wiec zmien na prawidlowe

  1. SELECT zakupiony_towar
  2. FROM zakupiony_towar,
  3. (SELECT id_klienta, nazwa_klienta
  4. FROM
  5. klient
  6. LIMIT 0,20)
  7. WHERE id_klienta = zakupiony_towar.id_klienta
  8. ORDER BY nazwa_klienta ASC, zaklupiony_towar.data_zakupu DESC


Dzięki! nie chodziło mi o to w 100%, ale naprowadziłeś mnie na rozwiązanie ( był jeden mankament z uzależnieniem tablicy klientow od daty ). Pozniej dokleje zapytanie, które to rozwiązuje. Jeszcze raz dzięki!
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: 13.10.2025 - 00:51