| | |
| Stránka: 1 z 1
| [ Príspevkov: 10 ] | |
Autor | Správa |
---|
Registrovaný: 04.03.10 Prihlásený: 30.04.10 Príspevky: 5 Témy: 1 | Napísal peefg: 04.03.2010 21:20 | |
|
ahojte, potrebujem pomoct s tymto...
mam 3 tabulky...
users,posts,comments
users obsahuje 'login'
ostatne 2 maju polozku 'author'
....vsetky 3 sa, samozrejme, tykaju uzivatelskeho mena..
taze takto vytiahnem pocet postov od vsetkych autorov (z posts):
Kód: select u.login,count(p.author) FROM users AS u LEFT JOIN posts AS p ON p.author=u.login GROUP by u.login; +--------+-----------------+ | login | count(p.author) | +--------+-----------------+ | user1 | 0 | | user2 | 12 | | user3 | 1 | +--------+-----------------+ super...funguje... teraz si kukenm kolko maju komentarov z comments: Kód: select u.login,count(c.author) FROM users AS u LEFT JOIN comments AS c ON c.author=u.login GROUP by u.login; +--------+-----------------+ | login | count(c.author) | +--------+-----------------+ | user1 | 0 | | user2 | 53 | | user3 | 7 | +--------+-----------------+ ochhh, tiez fujguje... ... a teraz by som si prial zistit kolko maju jednotlivi uzivatelia komentarov aj postov... skusam vsetko mozne, ale dajak nic nejde! prosim help!! napr: Kód: select u.login,count(p.author),count(c.author) FROM users AS u LEFT JOIN posts AS p ON p.author=u.login LEFT JOIN comments AS c ON c.author=u.login GROUP by u.login;
+--------+-----------------+-----------------+
| login | count(p.author) | count(c.author) |
+--------+-----------------+-----------------+
| user1| 0 | 0 |
| user2 | 636 | 636 |
| user3 | 7 | 7 |
+--------+-----------------+-----------------+
mi neviem preco vyhodi nasobky postov a commentov
dakujem za vsetky rady...
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
a co tak uchovavat pocet komentarov a postov v tabulke users?
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 04.03.10 Prihlásený: 30.04.10 Príspevky: 5 Témy: 1 | Napísal autor témy peefg: 04.03.2010 21:40 | |
|
moja odpoved (alebo protiotazka) znie: a co tak nie?
... chcem to tym sposobom, lebo zvytocny zapis do users mi bude cely system este viac spomalovat. viem, hovorte si co chcete, ze 2 zapisy navyse mozu ho*no, ale ked ich bude 100 navyse...tak to uz bude o niecom..
...takze, prosim, pomozte mi s tym JOINOM. diks
|
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
práveže ten jeden zápis ti odbremení databázu od zložitejších joinov s potencionálne veľkými tabuľkami. Preto sa to robí.
By si neveril, aký bordel dokáže spraviť zlý join.
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 04.03.10 Prihlásený: 30.04.10 Príspevky: 5 Témy: 1 | Napísal autor témy peefg: 04.03.2010 21:59 | |
|
asi mas pravdu... ale aj tak to chcem vediet! bo viem, ze sa to da
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
Toto by bolo skôr na subselect alebo Kód: COUNT(DISTINCT c.id) AS comments_count, COUNT(DISTINCT p.id) AS posts_count
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 04.03.10 Prihlásený: 30.04.10 Príspevky: 5 Témy: 1 | Napísal autor témy peefg: 04.03.2010 22:48 | |
|
stenley píše:
och, tak to je trocha dlhy kod... ked to beriem tak, ze by som mal zbierat data z 10 tabuliek, to by bol koniec...
rooobertek, davam na teba ;D
hodim to do users...
|
|
Registrovaný: 04.04.08 Prihlásený: 19.05.15 Príspevky: 424 Témy: 75 |
je jasne preco ti to dava nasobok comentarov a postov
1) odporucam precitat ako funguje joinovanie (vsetky druhy), to sa ti zide do buducna
2) v prvom kroku sa vyberu vsetci uzivatelia (su traja), v druhom kroku sa joinuju vsetky posty k uzivatelom (co je spravne) a v tretom kroku sa na kazdy zaznam (uzivatel x kazdy post) joinuju komentare...cize vystup je presne taky ako si zadal (nasobok), aj ked taky nechces
preco nechces to cez 2 selecty?
ak to chces predsa cez jeden select, tak je to mozne...skus porozmyslat ako vyuzijes to ze pri joinovani postov ti stlpce po joinovani komentarov obsahuju NULL, cize skus porozmyslat ako to prerobis na SUM a IF
_________________ Notebook: Fujitsu Siemens AMILO Xi2550, 17" WUXGA (1920x1200), Intel Core2Duo T9300 (2,5 GHz), 3GB DDR2 667 MHz, 2x320 GB HDD (RAID 0), ATI Radeon HD2700 (256MB GDDR3) |
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
Merlin_sk, myslim, ze peefg to uz vyriesil
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
| Stránka: 1 z 1
| [ Príspevkov: 10 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|