Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/02/2005, 12:55
DjNelson
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 meses
Puntos: 0
Selecionar datos de dos tablas con 1 consulta?

Uso mysql.

Tengo dos tablas: usuarios y usuarios_masdatos:

Usuarios
----------------------
identificador
nick
password
fecha_registro
email

usuarios_masdatos
------------------------
id_usuario
aficciones
biografía
pais
web
...

En usuarios van a estar cubiertos todos los campos, los campos de usuarios_masdatos puede que no estén cubiertos...

Si junto todo en la misma tabla con tantos campos opcionales (solo puse 4 pero hay muchos más) me quedan muchos vacíos, por eso dividí la tabla usuarios en dos.

Pero ahora tengo un problema: quiero mostrar todos los datos de los usuarios en un listado, para ello hago esto:

select usuarios.identificador,usuarios.nick,usuarios.pass word,usuarios.fecha_registro,usuarios.email
usuarios_masdatos.aficciones,usuarios_masdatos.bio grafia [...] from usuarios,usuarios_masdatos where usuarios.identificador = usuarios_masdatos.id_usuario


Pero esa consulta solo me muestra aquellos usuarios que tienen un registro correspondiente en usuarios_masdatos, de manera que no me muestra todos los usuarios.

Para mostrarlos todos envío dos consultas, primero selecciono todos los campos de usuarios y luego selecciono todos los campos de usuarios_masdatos para el usuario anterior (si no existe en esta tabla pues no muestro nada)

El problema que se presenta es la optimización, ya que en este ejemplo solo son dos consultas pero aveces necesito seleccionar datos de hasta cuatro tablas... es ahí cuando es necesario resumir esto en el mínimo número posible de consultas...

Puedo hacer los que pretendo con una consulta? No sé, una anidada o algo así...

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)

Última edición por DjNelson; 08/02/2005 a las 12:59