Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Doble consulta en Mysql, no sale...

Estas en el tema de Doble consulta en Mysql, no sale... en el foro de Bases de Datos General en Foros del Web. Explico cual es la idea, espero q se me entienda... Es un sistema de foros donde tengo dos tablas: mensajes y usuarios. En mensajes, en ...
  #1 (permalink)  
Antiguo 02/06/2005, 16:22
 
Fecha de Ingreso: mayo-2004
Mensajes: 4
Antigüedad: 20 años
Puntos: 0
Doble consulta en Mysql, no sale...

Explico cual es la idea, espero q se me entienda...

Es un sistema de foros donde tengo dos tablas: mensajes y usuarios.

En mensajes, en el campo DE, se guarda el mail del usuario que halla escrito, pero no solo escriben usuarios registrados, sino q ademas escribe gente anonima, donde en el campo DE pone cualquier nombre.

En usuarios, en el campo NICK se guardan los nicks de los usuarios.

La idea es q al cargar los mensajes q se muestran en una pagina, se carguen los NICKS de los q sean usuarios registrados en el campo DE de cada mensaje. O sea, que finalmente cada mensaje muestre, si se trata de un usuario registrado, el nick del mismo (almacenado en la tabla usuarios) y si no, la info del campo DE original.

El tema es q no encuentro la manera de hacerlo... existirá?
  #2 (permalink)  
Antiguo 02/06/2005, 18:02
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
podria ser que al cargar los datos, cheques el campo DE y busques el usuario que tenga ese mail y sacas el nick, y si no lo encuentra pues muestras el campo DE original... me explique?
  #3 (permalink)  
Antiguo 02/06/2005, 22:12
 
Fecha de Ingreso: mayo-2004
Mensajes: 4
Antigüedad: 20 años
Puntos: 0
eso es lo q intento hacer, pero no encuentro la manera de expresar correctamente la sentencia select y no me sale! como lo escribirias?
  #4 (permalink)  
Antiguo 03/06/2005, 02:11
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
Y no te vale con algo como WHERE nick <> "Anónimo" ?
  #5 (permalink)  
Antiguo 03/06/2005, 03:53
 
Fecha de Ingreso: mayo-2005
Mensajes: 217
Antigüedad: 19 años
Puntos: 5
Fijate si esto te sirbe,
Select tblmensajes.*,
if(isnull(tblmensajes.id_usuario),tblmensajes.de,t blusuarios.nick)AS r
from tblmensajes
LEFT JOIN tblusuarios ON tblmensajes.id_usuario= tblusuarios.id_usuario
saludos.........
  #6 (permalink)  
Antiguo 03/06/2005, 06:21
 
Fecha de Ingreso: octubre-2004
Mensajes: 104
Antigüedad: 19 años, 6 meses
Puntos: 0
el if() de la consulta no haría falta. Y en MySQL, la función para comprobar si un campo es nulo es ifnull() (a mi por lo menos la de isnull no me funciona).

Código:
SELECT *
FROM tblmensajes left join tblusuarios
ON tblmensajes.id_usuario = tblusuarios.id_usuario
Un saludo
  #7 (permalink)  
Antiguo 03/06/2005, 07:57
 
Fecha de Ingreso: mayo-2005
Mensajes: 217
Antigüedad: 19 años
Puntos: 5
pero lo que hago con el if es crear un campo r en este caso que para mostrar el nick del usuario o si es nulo mostrar el de de la otra tabla.
que tambien lo podria hacer despues en php
  #8 (permalink)  
Antiguo 03/06/2005, 15:56
 
Fecha de Ingreso: mayo-2004
Mensajes: 4
Antigüedad: 20 años
Puntos: 0
Gracias POSDON! Estaba bloqueado y no podia hacerlo! Me sale ahora!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




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