ďťż
 
problem przy selectcie z distinct'em ďťż
 
problem przy selectcie z distinct'em
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

problem przy selectcie z distinct'em



Raker - 29-08-2007 00:11
problem przy selectcie z distinct'em
  Witam Wszystkich.
Mam problemy z pewnym zapytaniem.

Posiadam dwie tabele
uzytkownicy - id,login
produkty - id,uid,nazwa

Kazdy uzytkownik moze dodac produkt do tabeli w ten sposob ze uid to jest id
uzytkownika.

Chcialbym wybrac z tabeli loginy i ilosci dodanych produktow 10 ostatnio
dodajacych uzytkownikow czyli przykladowo ostatni produkt dodal
uzytkownik 'raker' czyli bedzie na pierwszym miejscu, na kolejnym ten ktory
dodal przed nim, itd. Dodatkowo chialbym miec wybrany ile kazdy dodal produktow
(z posrod tych ostatnich 10 dodajacych uzytkownikow).

Ja probowalem w ten sposob:

select distinct p.uid, count(p.uid) as pcount, u.* from produkty p, uzytkownicy
u where u.id = p.uid group by u.login order by p.id desc limit 10

jednak oczywiscie nie dziala to jak nalezy ;) ( w sumie dobrze zliczalo ile
kazdy dodal ale nie wyswietlalo mi we wlasciwej kolejnosci ostatnich
uzytkownikow).

Dzieki za rady i pomoc.

Pozdrawiam
Raker

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl





=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 29-08-2007 00:55

  Raker wrote:
> Witam Wszystkich.
> Mam problemy z pewnym zapytaniem.
>
> Posiadam dwie tabele
> uzytkownicy - id,login
> produkty - id,uid,nazwa
>
> Kazdy uzytkownik moze dodac produkt do tabeli w ten sposob ze uid to jest id
> uzytkownika.
>
> Chcialbym wybrac z tabeli loginy i ilosci dodanych produktow 10 ostatnio
> dodajacych uzytkownikow czyli przykladowo ostatni produkt dodal
> uzytkownik 'raker' czyli bedzie na pierwszym miejscu, na kolejnym ten ktory
> dodal przed nim, itd. Dodatkowo chialbym miec wybrany ile kazdy dodal produktow
> (z posrod tych ostatnich 10 dodajacych uzytkownikow).
>
> Ja probowalem w ten sposob:
>
> select distinct p.uid, count(p.uid) as pcount, u.* from produkty p, uzytkownicy
> u where u.id = p.uid group by u.login order by p.id desc limit 10
>
> jednak oczywiscie nie dziala to jak nalezy ;) ( w sumie dobrze zliczalo ile
> kazdy dodal ale nie wyswietlalo mi we wlasciwej kolejnosci ostatnich
> uzytkownikow).
>
> Dzieki za rady i pomoc.

Zapytanie wygląda dobrze... jeśliby wyrzucić distinct.
A, i sortuj po max(id) - choć lepiej byłoby max(data_dodania).

--
P.M.




Raker - 30-08-2007 00:01

  > Zapytanie wygląda dobrze... jeśliby wyrzucić distinct.
No, ale jezeli bylaby taka sytuacja ze ktos dodal by np. 3 produkty pod rzad to
wtedy gdyby nie bylo distinct to by chyba wybralo tego samego uzytkownika na
pierwszych 3 pozycjach? A ja chce roznych uzytkownikow wyswietlic.

Raker

--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl




hubert depesz lubaczewski - 30-08-2007 00:01

  Dnia 28.08.2007 Raker <rakerWYTNIJTO@poczta.onet.pl> napisał/a:
> Posiadam dwie tabele
> uzytkownicy - id,login
> produkty - id,uid,nazwa
> Ja probowalem w ten sposob:

distinct zupełnie tu nie pasuje.

select
u.id, count(*)
from
uzytkownicy u join produkty p on u.id = p.uid
group by
u.id
order by u.id desc limit 10;

depesz

--
quicksil1er: "postgres is excellent, but like any DB it requires a
highly paid DBA. here's my CV!" :)
http://www.depesz.com/ - blog dla ciebie (i moje CV)





=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 30-08-2007 00:01

  Raker wrote:
>> Zapytanie wygląda dobrze... jeśliby wyrzucić distinct.
> No, ale jezeli bylaby taka sytuacja ze ktos dodal by np. 3 produkty pod rzad to
> wtedy gdyby nie bylo distinct to by chyba wybralo tego samego uzytkownika na
> pierwszych 3 pozycjach? A ja chce roznych uzytkownikow wyswietlic.

A sprawdzałeś? Wiesz jak działa GROUP BY?

--
P.M.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= mysql i mysql-front, problem String line; if (line=="cos"){...}....problem Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?= [postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?= [oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?= Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ] [PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ? [MySQL] Problem z zapisem danych w bazie danych Problem z mysql - can't connect to MySQL/nietypowo...
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • fantazia.htw.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com