Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Bases de Datos General (http://www.forosdelweb.com/f21/)
-   -   Varias consultas en 1 = 1 consulta? (http://www.forosdelweb.com/f21/varias-consultas-1-1-consulta-272221/)

DjNelson 19/02/2005 03:12

Varias consultas en 1 = 1 consulta?
 
SQL permite enviar varias consultas así:

select nombre,permisos (select avg(puntuacion) from puntuaciones where id_usuario='123') as media, (select comentario from comentarios where id_usuario='123') as comentario,(select count(*) from untuaciones where id_usuario='123') as cuenta from usuarios where id_usuario='123';

Pero esto se podría hacer enviando las consultas una a una:

select nombre,permisos from usuarios where id_usuarios='123';
select avg(puntuacion) as media from puntuaciones where id_usuario='123';
select comentario from comentarios where id_usuario='123';
select count(*) from untuaciones where id_usuario='123'

En el primer caso sólo nos conectamos a la base una vez, mientras que en el segundo cuatro veces, deduzco entonces que la primera forma es más rápida que la segunda? O por el contrario tarda el mismo tiempo ya que las consultas son las mismas?

Saludos.

DjNelson 22/02/2005 13:39

urgente!!
 
Tengo esta consulta:

select puntos,(select count(*) from cd where ident_user='".$_COOKIE["registrado"]."' and enviado='no') as lista from usuarios where identificador = '".$_COOKIE["registrado"]."'

En mi equipo con mysql 4.1.9 funciona bien, pero en el servidor con la versión
4.0.18 dá el siguiente error:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'select count(*) from cd where ident_user='3' and enviado='no')

Entiendo que no soporta enviar las consultas de esta forma?

Saludos.

javier_82 22/02/2005 14:44

Debe ser porque estas haciendo una subconsulta, y en la version de MySQL que tenes instalada en el servidor no hacepta subconsultas. Decile que te actualicen, o hacelo vos si podes a una version mas nueva, a partir de la 4.1 MySQL acepta subconsultas.
Saludos.

DjNelson 24/02/2005 11:57

Ok, pero sigo sin saber lo primero: es lo mismo enviar varias subconsultas juntas que una a una?

Saludos.

Cluster 28/02/2005 14:08

Revisa el manual oficial de Mysql .. ahí veras como se hacen sub-consultas para Mysql 4.0 e inferiores a base de JOIN .. INNERT JOIN y demás historias .. Eso son los detalles que tiene Mysql en sus versiones .. no soporta todo el standard de SQL (ANSI 9x?) que otros motores de BD como MS SQL Server, Oracle, PostgreSQL .. etc.

Un saludo,


La zona horaria es GMT -6. Ahora son las 06:23.

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