Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Bases de Datos General (http://www.forosdelweb.com/f21/)
-   -   ayuda con count (http://www.forosdelweb.com/f21/ayuda-con-count-272386/)

amj 19/02/2005 20:43

ayuda con count
 
Hola todos estoy haciendo esta consulta:
Código:

SELECT ca.Id,ba.nombre,ca.precioventa FROM inmuebles AS ca, barrios AS ba WHERE ba.comuna='4' and ca.tipo = '0' and ca.precioventa is not null and ba.id=ca.barrio limit 15
como ven la tengo a que me muestre de 15 en 15 resultados.
Ahora, lo que quiero es que me devuelva el número de registros totales que hay en dicha consulta sería:
Código:

SELECT count(ca.Id) FROM inmuebles AS ca, barrios AS ba WHERE ba.comuna='4' and ca.tipo = '0' and ca.precioventa is not null and ba.id=ca.barrio
Como hacer para juntar estas dos consultas en una. Intente lo siguiente pero no me da:
Código:

SELECT count(ca.Id),ca.Id,ba.nombre,ca.precioventa FROM inmuebles AS ca, barrios AS ba WHERE ba.comuna='4' and ca.tipo = '0' and ca.precioventa is not null and ba.id=ca.barrio group by ca.Id limit 15
Siempre arroja el valor 1 en el count.

Alguien me entiende, y sabe la solución a mi problema.

Gracias

DjNelson 20/02/2005 10:29

SELECT ca.Id,ba.nombre,ca.precioventa,(select (*) from inmuebles as ca, barrios as ba WHERE ba.comuna='4' and ca.tipo = '0' and ca.precioventa is not null and ba.id=ca.barrio limit 15) as cuenta FROM inmuebles AS ca, barrios AS ba WHERE ba.comuna='4' and ca.tipo = '0' and ca.precioventa is not null and ba.id=ca.barrio limit 15

Shaka 05/07/2005 15:57

GUAU, funciono?

Vice 06/07/2005 00:46

Lo que puso DjNelson, salvo un pequeño error (la sentencia entre paréntesis no lleva el limit 15) debería funcionar. Claro que tiene la limitación de que la versión de mysql que uses admita las subconsultas (versión 4.1 en adelante).
Sino tienes una versión que admita subconsultas no tienes forma de hacerlo en una única sentencia. Lo que más se aproximaría sería:

Código:

SELECT SQL_CALC_FOUND_ROWS ca.Id,ba.nombre,ca.precioventa
FROM inmuebles AS ca, barrios AS ba
WHERE ba.comuna='4' and ca.tipo = '0' and ca.precioventa is not null and ba.id=ca.barrio;
select found_rows();
limit 15

Claro que esto también lo obtienes de la forma que has hecho tú. Ventaja de esta forma: rapidez, pues sólo ejecutas la instrucción una única vez en lugar de dos.

Un saludo.


La zona horaria es GMT -6. Ahora son las 19:56.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.