ďťż
 
Wybor z 2 tabel + zliczanie odpowiednich recordow ďťż
 
Wybor z 2 tabel + zliczanie odpowiednich recordow
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

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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • red-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

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com