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.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[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.pldoc.pisz.plpdf.pisz.plfantazia.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 |
|