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

Consulta a dos tablas, si no existe el registro que me devuelva nulo (u otra cosa)

Estas en el tema de Consulta a dos tablas, si no existe el registro que me devuelva nulo (u otra cosa) en el foro de Mysql en Foros del Web. Que tal, la verdad es que, no se bien como formular la pregunta, pero aqui va, espero ser mas o menos claro. Tengo dos tablas ...
  #1 (permalink)  
Antiguo 08/10/2008, 11:32
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 18 años, 6 meses
Puntos: 0
Consulta a dos tablas, si no existe el registro que me devuelva nulo (u otra cosa)

Que tal, la verdad es que, no se bien como formular la pregunta, pero aqui va, espero ser mas o menos claro.

Tengo dos tablas con la siguiente informacion

Código:
TABLA personal

idpersonal
nombre
Una tabla mas

Código:
TABLA dato

iddato 
idpersonal // esta es una llave foranea para enlazar con la tabla personal
telefono
Los siguientes datos en cada una de las tablas

Código:
Tabla Personal

idpersonal  -  Nombre

1 - Juan Perez
2 - Chano Gomez
3 - Armando Hoyos
4 - Julian Agosto

----------------------

Tabla dato

iddato - idpersonal - telefono

1 - 1 - 7778487
2 - 2 - 1225411
Si hago la siguiente consulta

Código:
select personal.nombre, dato.telefono
from personal,dato
where personal.idpersonal = dato.idpersonal;
Me devuelve el siguiente resultado:

Código:
idpersonal - personal.nombre - dato.telefono

1 - Juan Perez - 7778487
2 - Chano Gomez - 1225411
Lo que me gustaría obtener es lo siguiente:

Código:
1 - Juan Perez - 7778487
2 - Chano Gomez - 1225411
3 - Armando Hoyos - No tiene telefono
4 - Julian Agosto - No tiene telefono
He intentado lo siguiente, pero no me pitufa

Código:
select personal.nombre,

if(personal.idpersonal in (select idpersonal from dato),dato.telefono,'No tiene telefono') as telefono

from personal,dato

where personal.idpersonal = dato.idpersonal
Asi que...... alguien sabe como hacer esto?

Gracias, saludos y un Cuaaack! para todos.
__________________
De todas las cosas que queria ser... :-D acabe siendo un pato volador... :risa:
http://patovolador.wordpress.com
  #2 (permalink)  
Antiguo 08/10/2008, 15:10
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Consulta a dos tablas, si no existe el registro que me devuelva nulo (u ot

Prueba esto:

Código sql:
Ver original
  1. SELECT personal.idpersonal, personal.nombre, IFNULL (dato.telefono, 'No tiene teléfono')
  2. FROM personal LEFT JOIN dato ON personal.idpersonal = dato.idpersonal
  #3 (permalink)  
Antiguo 08/10/2008, 18:39
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Consulta a dos tablas, si no existe el registro que me devuelva nulo (u ot

Genial!

Probado y funcionando.

Gracias!
__________________
De todas las cosas que queria ser... :-D acabe siendo un pato volador... :risa:
http://patovolador.wordpress.com
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 11:57.