Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-08-2012
djMadox djMadox is offline
Miembro
NULL
 
Registrado: ago 2012
Posts: 21
Poder: 0
djMadox Va por buen camino
Smile Consulta a una tabla con datos de otra!!!

Hola, tengo la BD creada, las tablas, todo correctamente...
Pero necesito hacer una consulta para saber los telefonos de un funcionario 'X'...
Por ejemplo, las tablas que tengo serían:

empleados(ci, nombre, apellido, fecha_nacimiento)
tiene(ci, nrotel)
telefonos(nrotel, tipo)

/*ci y nrotel son numeros del tipo integer*/

lo que necesito es, saber el numero de celular de cada funcionario...
sé que seria algo como consultar 1º por 'ci' de 'empleados', luego con 'ci' consultar los 'nrotel', y al fin verificar cuál de los muchos 'nrotel' que pueden haber para este empleado tendría " tipo='celular' "...

alguien me podría ayudar?
Soy nuevo en eso de BDs y consultas SQL...

Hoy alguien me dijo que podría ser con JOIN o algo así...
En todo caso, cuál sería la sintaxis??

A todos, muchas gracias por adelanto...
Responder Con Cita
  #2  
Antiguo 22-08-2012
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Poder: 20
D-MO Va por buen camino
Algo como esto podría funcionar, pero claro, pueden resultar nombres duplicados si el funcionario tiene mas de un número.

Código SQL [-]
select 
    e.nombre, e.apellido, e.fecha_nacimiento, t.nrotel, ts.tipo
from
    empleado e, tiene t, telefonos ts
where
    e.ci = t.ci AND t.nrotel = ts.nrotel
Pero supongo que esto puede aclarar tu duda.

Saludos
Responder Con Cita
  #3  
Antiguo 22-08-2012
Avatar de kapcomx
kapcomx kapcomx is offline
Miembro
 
Registrado: jun 2007
Ubicación: Puebla México
Posts: 350
Poder: 17
kapcomx Va por buen camino
inner join

No se que base de datos uses pero si estas usando Interbase el ejemplo de D-MO te va muy bien, ahora recuerdo que en Mysql
usaba el inner join mas o menos asi....
Código Delphi [-]
select  empleados.nombre, empleados.apellido, empleados.fecha_nacimiento, tiene.nrotel, telefonos.tipo
from empleados inner join tiene on empleados.ci= tiene.ci inner join telefonos on 
tiene.nrotel=tiene.nrotel

tambien te recomiento que uses el prefijo fk_ para identificar las llaves foraneas de tus tablas, al menos ami se me hace mas facil, y sobre todo le pongas un campo id a todas tus tablas esto ayuda mucho.

empleados(id_empleado, nombre, apellido, fecha_nacimiento)
tiene(id_tiene, fk_empleado, nrotel)
telefonos(id_telefonos, fk_tiene, tipo)

Saludos...
__________________
un tipo al cual la sociedad no le tiene el mas mínimo respeto no puede ser presidente....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
copiar de una tabla de una base de datos a otra tabla igual de otra base de datos ingabraham Conexión con bases de datos 1 14-10-2008 23:16:42
Mysql: copiar los campos de una tabla de una base de datos a otra tabla de otra base? patriram MySQL 4 02-11-2007 16:00:24
Actualizar una tabla con una consulta de otra tabla JODELSA SQL 2 14-09-2006 04:07:01
Cosultar datos de una tabla y copiar la consulta en otra JODELSA SQL 2 30-05-2005 21:53:30
Consulta SQL para datos ordenados en otra tabla cotoprix SQL 8 26-01-2004 23:54:53


La franja horaria es GMT +2. Ahora son las 02:27:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi