Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Brojanje zapisa koji je rezultat upita nad više tabela

  • 3 odgovora
  • 2.951 pregleda

Najnovija ↓

Brojanje zapisa koji je rezultat upita nad više tabela 18.05.2009. u 21:23 · pre 212 meseci
izmenjeno 1 put, poslednji put Tudfa 18.05.2009. u 21:38
  1. Tudfa18.05.2009. u 21:38zapis iz teksta poruke
#1
Pozdrav !

Imam sledeći upit :
Code:
SELECT
t1.*,
t2.name,
IF(ROUND(AVG(t3.grade),2)IS NULL,0,ROUND(AVG(t3.grade),2)) AS grade,
COUNT(t3.jid) AS votes
FROM t1
INNER JOIN t2 ON t1.cat_id=t2.id
INNER JOIN t3 ON jokes.id=t3.joke_id
WHERE (t1.approved_by IS NOT NULL)
GROUP BY t1.id
HAVING grade >8
LIMIT 0,5

Hoću da pre ovoga izvršim jedan upit koji će izbrojati rezultate po datim kriterijumima i vratiti kao rezultat broj zapisa.
Ovo mi treba zbog paginacije, tj. neću da mi vrati sve zapise kao u ovom upitu gore,
nego mi treba da prvo izbrojim a onda prikažem samo prvih n.

Ja sam ovako rešio to, ali mi i dalje deluje da može bolje, pa ako može neki hint...

Code:
SELECT COUNT(*) AS br_zapisa FROM (SELECT
IF(ROUND(AVG(t3.grade),2)IS NULL,0,ROUND(AVG(t3.grade),2)) AS grade
FROM t1
INNER JOIN t2 ON t1.cat_id=t2.id
INNER JOIN t3 ON t1.id=t3.joke_id
WHERE (t1.approved_by IS NOT NULL)
GROUP BY t1.id
HAVING grade >8
)AS rezultat
Re: Brojanje zapisa koji je rezultat upita nad više tabela 19.05.2009. u 00:16 · pre 212 meseci #2
http://dev.mysql.com/doc/refman/5.1/en/select.html
http://dev.mysql.com/doc/refma...tions.html#function_found-rows

Citat:

SQL_CALC_FOUND_ROWS tells MySQL to calculate how many rows there would be in the result set, disregarding any LIMIT clause. The number of rows can then be retrieved with SELECT FOUND_ROWS().


Code:

mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
    -> WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS();


jasno? ili da idem u detalje?
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Brojanje zapisa koji je rezultat upita nad više tabela 19.05.2009. u 00:55 · pre 212 meseci #3
Sve više mi se svidja MySQL, kao i ovaj MySQL forum ... Probaću ovo ujutro kad ustanem, mislim da neće biti
potrebe za detaljima, ovo je ono što sam tražio. Hvala najlepše !!
Re: Brojanje zapisa koji je rezultat upita nad više tabela 19.05.2009. u 11:34 · pre 212 meseci #4
kada shvatis da je mysql 5.0/5.1 malo drugaciji od onoga sto je bio mysql 3.23 mnoge stvari dodju na mesto :) ... ne mislim licno ti, vec, generalno ljudi koji ga nisu koristili od tada .. (tada nije bilo nista ovih normalnih funkcija, stranih kljuceva, unija, subselect-a .. nisi mogao nista kompleksnije od obicnog upita da uradis) ... 5.1 je ozbiljan rdbms sa kompletnom funkcionalnoscu db servera ... naravno, fali mu stosta, i ima ponesto sto drugi nemaju ... ali vrlo koristan i upotrebljiv sistem...

pored same baze, obrati paznju da mysql ima odlicnu dokumentaciju ... :) koja u 80% slucajeva daje odgovor na postavljeno pitanje
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme