wybieranie z 2 tabel i sortowanie
raker - 19-07-2007 00:06
wybieranie z 2 tabel i sortowanie
Witam, chcialbym uzyskac pomoc w stworzeniu najefektywniejszego zapytania ktore bedzie wybieralo z 2 tabel i sortowalo po elementach z jednej z tabel.
Dla przykladu przedstawiam strukture tabel.
Tabela uzytkownikow [users] id|login
Tabela zwierzat [animals] id|uid|name
I teraz chce wybrac np. wrzystykich uzytkownikow z bazy users oraz zliczyc ile kazdy z nich ma zwierzat [generalnie users.id = animals.uid] i posorotwac wyniki albo po loginie albo po ilosci zwierzat dla kazdego uzytkownika.
z gory dziekuje za pomoc
pozdrawiam raker
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
jerzy - 19-07-2007 00:06
raker wrote: > Witam, > chcialbym uzyskac pomoc w stworzeniu najefektywniejszego zapytania ktore bedzie > wybieralo z 2 tabel i sortowalo po elementach z jednej z tabel. > > Dla przykladu przedstawiam strukture tabel. > > Tabela uzytkownikow [users] > id|login > > Tabela zwierzat [animals] > id|uid|name |ile w założeniu nie przewidujesz ilości? tj. jedno zwierzątko na rekord? > > I teraz chce wybrac np. wrzystykich uzytkownikow z bazy users oraz zliczyc ile > kazdy z nich ma zwierzat [generalnie users.id = animals.uid] > i posorotwac wyniki albo po loginie albo po ilosci zwierzat dla kazdego to trochę komplikuje drugą opcję sortowania (bo właściwie chodzi o ilość rekordów) > uzytkownika. > > z gory dziekuje za pomoc > > pozdrawiam > raker > >
=?ISO-8859-2?Q?Adam_P=B3aszczyca?= - 20-07-2007 00:03
On 18 Jul 2007 22:01:18 +0200, "raker" <rakerWYTNIJTO@poczta.onet.pl> wrote:
>Tabela uzytkownikow [users] >id|login > >Tabela zwierzat [animals] >id|uid|name > >I teraz chce wybrac np. wrzystykich uzytkownikow z bazy users oraz zliczyc ile >kazdy z nich ma zwierzat [generalnie users.id = animals.uid] >i posorotwac wyniki albo po loginie albo po ilosci zwierzat dla kazdego >uzytkownika.
No ale w czym problem?
Select users.login, count(animals.uid) as ilzwierz from users join animals on generalnie users.id = animals.uid group by users.login order by ilzwierz
Albo order by login
-- ___________ (R) /_ _______ Adam 'Trzypion' Płaszczyca (+48 502) 122688 ___/ /_ ___ ul. Na Szaniec 23/70, 31-560 Kraków, (012) 3783198 _______/ /_ http://trzypion.oldfield.org.pl/wieliczka/ ___________/ GG: 3524356
=?ISO-8859-2?Q?Adam_P=B3aszczyca?= - 20-07-2007 00:03
On Thu, 19 Jul 2007 00:02:47 +0200, jerzy <j_@gazeta.pl> wrote:
>> I teraz chce wybrac np. wrzystykich uzytkownikow z bazy users oraz zliczyc ile >> kazdy z nich ma zwierzat [generalnie users.id = animals.uid] >> i posorotwac wyniki albo po loginie albo po ilosci zwierzat dla kazdego >to trochę komplikuje drugą opcję sortowania (bo właściwie chodzi o ilość >rekordów)
Ależ, druga od ręki metoda:
select users.id, a.ilzwierz from
users join (select id, count(*) as ilzwierz from animals as A) on a.id=users.id order by ilzwierz -- ___________ (R) /_ _______ Adam 'Trzypion' Płaszczyca (+48 502) 122 688 ___/ /_ ___ ul. Na Szaniec 23/70 31-560 Kraków (012 378 31 98) _______/ /_ http://trzypion.oldfield.org.pl/wieliczka/foto.html ___________/ mail: _555@irc.pl GG: 3524356
raker - 21-07-2007 00:08
Tylko czy to rozwiazanie znajdzie userow ktorzy nie bede mieli zwierzatek w tabeli?
> No ale w czym problem? > > Select users.login, count(animals.uid) as ilzwierz from > users join animals on generalnie users.id = animals.uid > group by users.login > order by ilzwierz > > Albo order by login > > -- > * * ___________ (R) > * */_ *_______ * * *Adam 'Trzypion' Płaszczyca (+48 502) 122688 > *___/ /_ *___ * *ul. Na Szaniec 23/70, 31-560 Kraków, (012) 3783198 > _______/ /_ * * http://trzypion.oldfield.org.pl/wieliczka/ > ___________/ * *GG: 3524356
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
=?ISO-8859-2?Q?Adam_P=B3aszczyca?= - 21-07-2007 00:08
On 20 Jul 2007 17:17:48 +0200, "raker" <rakerWYTNIJTO@poczta.onet.pl> wrote:
>Tylko czy to rozwiazanie znajdzie userow ktorzy nie bede mieli zwierzatek w >tabeli?
1. Odpowiada się POD cytatem, który się odpowiednio skraca.
2. Takie nie, ale jak zmienisz join na left outer join to juz tak. -- ___________ (R) /_ _______ Adam 'Trzypion' Płaszczyca (+48 502) 122 688 ___/ /_ ___ ul. Na Szaniec 23/70 31-560 Kraków (012 378 31 98) _______/ /_ http://trzypion.oldfield.org.pl/wieliczka/foto.html ___________/ mail: _555@irc.pl GG: 3524356
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[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] Wyszukanie =?ISO-8859-2?Q?rekord=F3w=28powiazane_tabel?==?ISO-8859-2?Q?e=29?=
[MySQL] Zapytanie z =?ISO-8859-2?Q?dw=F3ch_tabel_na_raz_?==?ISO-8859-2?Q?i_grupowanie_po_wsp=F3lnym_polu=2E_Jak_=3F?=
zapytanie do =?ISO-8859-2?Q?dw=F3ch_tabel_z_limitem_wier?==?ISO-8859-2?Q?szy?=
[mysql] =?ISO-8859-2?Q?po=B3=B1czenie_tabel_wg_kolumn=2C_?==?ISO-8859-2?Q?nie_wierszy?=
Zapytanie SQL z =?ISO-8859-2?Q?pust=B1_tabel=B1?=
[MySQL] Backup tabel przez "BACKUP" i problem z prawami dostępu :(
=?iso-8859-2?Q?Problem_z_left_join_-_=B3=B1czenie_kilku_tabel.?=
Jak wyswietlic dane z dwoch tabel gdy dla jednej z nich jest brak jest danej wartosci
zanotowane.pldoc.pisz.plpdf.pisz.plmelooonka.opx.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 |
|