Wybor z 2 tabel + zliczanie odpowiednich recordow
Raker - 17-05-2007 22:44
Wybor z 2 tabel + zliczanie odpowiednich recordow
Witam, mam problem z pewnym zapytaniem.
Mamy dwie tabele: users(id, name, email, itd) orders(id, uid)
i chcialbym wybrac zapytaniem dane userow (z tabeli 'users') oraz informacje ile kazdy z nich zglosil zamowien (w tabeli orders pole 'uid' oznacza id usera ktory sklada zamowienie).
probowalem tak:
SELECT users.*, COUNT(orders.uid) as liczba_zamowien FROM users, orders where users.id = orders.uid GROUP BY users.id ORDER BY liczba_zamowien
ale nie dziala to za dobrze (nie znajduje nic :). Moze tez byc ze tabela orders bedzie pusta, wtedy po prostu przy kazdym userze bedzie pole liczba_zamowien = 0.
Dziekuej za pomoc.
pozdrawiam
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Herakles - 17-05-2007 22:44
select u.users_id, count(o.orders_id) as orders_count from users u left join orders o on o.users_id=u.users_id group by u.users_id order by count(o.orders_id) desc ;
Herakles - 17-05-2007 22:44
select u.users_id, case when count(o.orders_id) is null then 0 else count(o.orders_id) end as orders_count from users u left join orders o on o.users_id=u.users_id group by u.users_id order by case when count(o.orders_id) is null then 0 else count(o.orders_id) end desc ;
raker - 17-05-2007 22:44
Do konca nie wiem dlaczego ale dostaje komunikat po wykonaniu ponizszego zapytania: 'Invalid use of group function'
pozdrawiam
> select > * u.users_id, > * case when count(o.orders_id) is null then 0 else count(o.orders_id) end as orders_count > from > * users u > * left join orders o on o.users_id=u.users_id > group by > * u.users_id > order by > * case when count(o.orders_id) is null then 0 else count(o.orders_id) end desc > ; >
-- Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
DIUK - 19-05-2007 00:01
> Mamy dwie tabele: > users(id, name, email, itd) > orders(id, uid)
Może tak:
Niech to będa tabele (dla uporządkowania id-ów): users (uid,name,email...) orders (id,uid)
SELECT name,email,....,LiczbaZamowien FROM users LEFT JOIN (SELECT uid,count(id) as LiczbaZamowien FROM orders GROUP BY uid) s1 ON users.uid=s1.uid
pozdrawiam diuk
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.plred-hacjenda.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 |
|