Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Select iz 3 tabele sa vise COUNT-A

[es] :: MySQL :: Select iz 3 tabele sa vise COUNT-A

[ Pregleda: 3124 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dr ZiDoo
Banja Luka

Član broj: 189
Poruke: 1728
87.250.104.*

Jabber: ZiDoo@elitesecurity.org
ICQ: 299539598
Sajt: zidoo.geek.rs.ba


Profil

icon Select iz 3 tabele sa vise COUNT-A13.12.2006. u 17:26 - pre 211 meseci
Primjer:

TABELA alfa:
Code:

alfa_id int
alfa_name varchar(20)
alfa_nijebitno varchar(150)


TABELA beta:
Code:

alfa_id int
beta_id int
beta_nijebitno varchar(150)


TABELA gama
Code:

alfa_id int
gama_id int
gama_nijebitno varchar(150)



Rezultat koji treba da dobijem izgleda otprilike ovako
Code:

+---------+-----------+---------------+----------------+
| alfa_id | alfa_name | ukupno_beta   | ukupno_gama    |
+---------+-----------+---------------+----------------+
| 1       | red       | 10            | 23             | 
| 2       | blue      | 12            | 24             | 
+---------+-----------+---------------+----------------+


Znaci neki podaci iz tabele alfa i broj slogova iz ostalih tabela za dati alfa_id.
Meni na pamet ne pada ni jedan jedini elegantan nacin, a vjerujm da neko pametan to mozda zna.
tu nema kašike....
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.1.14.vie.surfer.at.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Select iz 3 tabele sa vise COUNT-A13.12.2006. u 21:25 - pre 211 meseci
Code:
select sub1.alfa_id, sub1.alfa_name, sub1.ukupno_beta, sub2.ukupno_gama
from
(select a.alfa_id, a.alfa_name, count(*) ukupno_beta
from alfa a
left join beta b on b.alfa_id = a.alfa_id
group by a.alfa_id) as sub1,
(select a.alfa_id, a.alfa_name, count(*) as ukupno_gama
from alfa a
left join gama g on g.alfa_id = a.alfa_id
group by a.alfa_id) as sub2
where sub1.alfa_id = sub2.alfa_id
order by sub1.alfa_id;


ili
Code:
select a.alfa_id, a.alfa_name, sub1.ukupno_beta, sub2.ukupno_gama
from alfa a, (select b.alfa_id, count(*) ukupno_beta from beta b group by b.alfa_id) as sub1,
(select g.alfa_id, count(*) ukupno_gama from gama g group by g.alfa_id) as sub2
where a.alfa_id = sub1.alfa_id and a.alfa_id = sub2.alfa_id;

Vjerovatno postoji i elegantnije rjesenje, ali mi se ne da dublje ulaziti u rjesavanje upita...
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

voligoya
Goran Stojanovic
Beograd

Član broj: 66340
Poruke: 27
*.46.eunet.yu.



Profil

icon Re: Select iz 3 tabele sa vise COUNT-A14.12.2006. u 07:48 - pre 211 meseci
Suvise komplikovano, predlazem da problem resis jednom petljom, ili malo preuredis tabele ovako ce ti svaka promena i provera biti kopalje po SQL upitima
Na posao sam uvek stizao sa mučninom ali živ. Što pokazuje da mi je Šuman bliži od Šostakoviča!
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.it-austria.net.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Select iz 3 tabele sa vise COUNT-A14.12.2006. u 08:37 - pre 211 meseci
@voligoya: Cime bi mogao argumentovati tu izjavu da je bolje odraditi to u petlji (vjerovatno mislis u nekom programskom jeziku?) ? Evo, ja sam se spreman kladiti, da ce ovaj SQL upit biti brzi nego da se to odradjuje u petlji.
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

voligoya
Goran Stojanovic
Beograd

Član broj: 66340
Poruke: 27
*.121.eunet.yu.



Profil

icon Re: Select iz 3 tabele sa vise COUNT-A14.12.2006. u 10:17 - pre 211 meseci

Citat:
Dejan Topalovic: @voligoya: Cime bi mogao argumentovati tu izjavu da je bolje odraditi to u petlji (vjerovatno mislis u nekom programskom jeziku?) ? Evo, ja sam se spreman kladiti, da ce ovaj SQL upit biti brzi nego da se to odradjuje u petlji.


Da mislio sam u nekom programskom jeziku, uopste ne znam ni o kojoj se bazi radi, ali pogledaj molim te upit koji se odnosi na tri proste tabele, sta ako treba da sumira i u isto vreme izvuce neki minimum iz tih tabela, opet da lomim glavu sa SQL, ne hvala. A sto se tice brzine upita, spoji ti tri tabele sa kolicinom zapisa preko 100000, tada glasam za tri upita nad po jednom tabelom.

Na posao sam uvek stizao sa mučninom ali živ. Što pokazuje da mi je Šuman bliži od Šostakoviča!
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.it-austria.net.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Select iz 3 tabele sa vise COUNT-A14.12.2006. u 10:29 - pre 211 meseci
Evo ponavljam - spreman sam se kladiti s tobom na bilo koju sumu, da ce SQL biti brzi od izracunavanja putem programskog jezika.
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

dr ZiDoo
Banja Luka

Član broj: 189
Poruke: 1728
87.250.104.*

Jabber: ZiDoo@elitesecurity.org
ICQ: 299539598
Sajt: zidoo.geek.rs.ba


Profil

icon Re: Select iz 3 tabele sa vise COUNT-A14.12.2006. u 15:17 - pre 211 meseci
Baza podataka je mySQL5 a programski jezik je PHP.

Inace kod treba da bude u aplikaciji na koju se ocekuje ogroman napad :) korisnika. Kada bi PHPu dao da mi odradi 20 puta (izraz ce uglavnom vracati 20 slogova) i onda u svakom jos po jedan SQL izaraz apache bi tak poludio da bi sam prepravio svoj kod u nekku 3D pucacinu a mySQL bi se iz servera presteko u UPS :)

I ovako je pitanje kako ce mySQL reagovati na ovako slozen upit. U svakom slucaju Dejane veliko hvala.
tu nema kašike....
 
Odgovor na temu

Dejan Topalovic
Dejan Topalović
Senior Oracle DBA & Senior PL/SQL
Developer, Erste Sparinvest (Erste
Bank), Vienna, Austria
Vienna

Član broj: 635
Poruke: 1374
*.it-austria.net.

Sajt: www.baze-podataka.net


+2 Profil

icon Re: Select iz 3 tabele sa vise COUNT-A14.12.2006. u 15:18 - pre 211 meseci
@dr Zidoo: Javi da li upit radi. :)
Blog - baze podataka
---------------------
Oracle OCP DBA (9i & 10g)
Oracle Database: SQL Certified Expert
Oracle OCP Developer
Certified MySQL DBA
 
Odgovor na temu

dr ZiDoo
Banja Luka

Član broj: 189
Poruke: 1728
87.250.104.*

Jabber: ZiDoo@elitesecurity.org
ICQ: 299539598
Sajt: zidoo.geek.rs.ba


Profil

icon Re: Select iz 3 tabele sa vise COUNT-A15.12.2006. u 14:37 - pre 211 meseci
Upit radi, ali tako zgazi mySQL da je to ne vidjeno. Na kraju sam moro counte staviti u prvu tabelu pa sada sve sto radim na ovim tabelama (brisem, dodajem) moram uslkadjivati sa glavnom :)

U svakom slucaju, poucno i definitivno ce zatrebati jos koji put.
tu nema kašike....
 
Odgovor na temu

djordje
Novi Sad

Član broj: 3704
Poruke: 1725
*.dynamic.sbb.co.yu.



+3 Profil

icon Re: Select iz 3 tabele sa vise COUNT-A15.12.2006. u 21:41 - pre 211 meseci
Citat:
ali tako zgazi mySQL da je to ne vidjeno


Sta si hteo reci ovim?
 
Odgovor na temu

dr ZiDoo
Banja Luka

Član broj: 189
Poruke: 1728
87.250.104.*

Jabber: ZiDoo@elitesecurity.org
ICQ: 299539598
Sajt: zidoo.geek.rs.ba


Profil

icon Re: Select iz 3 tabele sa vise COUNT-A16.12.2006. u 02:14 - pre 211 meseci
Da pod normalnim opterecenjem kakvog imam baza podataka uspori do boli, samim time prekoracim PHP exec time i to bi otprilike bilo to.
tu nema kašike....
 
Odgovor na temu

[es] :: MySQL :: Select iz 3 tabele sa vise COUNT-A

[ Pregleda: 3124 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.