Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-02-2007
Jose_Pérez Jose_Pérez is offline
Miembro
 
Registrado: may 2003
Posts: 156
Poder: 22
Jose_Pérez Va por buen camino
Enlazar más de un campo con una única tabla

Hola:

Tengo una tabla de obras con tres campos numéricos diferentes que enlazan con la misma tabla de directores. Cada campo se utilizar para almacenar el director que haya dirigido el proyecto de la obra tres fases diferentes. Puede darse la circunstancia de que un mismo director haya dirigido más de una de las fase la obra.

Si quisiera consultar el nombre de los directores de la primera fase, la consulta sería así:

Código SQL [-]
Select Obra.Concepto,Director.Nombre from Obra,Director
Where Obra.Director1=Director.Codigo

Ahora bien, mi duda aparece cuando quiero consultar el nombre de los directores que hayan intervenido en las tres fases

Algo así como esto...
Código SQL [-]
Select Obra.Concepto,Director.Nombre from Obra,Director
Where Obra.Director1=Director.Codigo 
and Obra.Direcor2=Director.Codigo
and Obra.Director3=Director.Codigo

¿Cuál seríala forma correcta de hacerlo?

Gracias.
Responder Con Cita
  #2  
Antiguo 13-02-2007
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
Deberia ser algo asi:

Código SQL [-]
Select Obra.Concepto, 
       (Select Director.Nombre from Director Where Obra.Director1=Director.Codigo) Director1, 
       (Select Director.Nombre from Director Where Obra.Director2=Director.Codigo) Director2,
       (Select Director.Nombre from Director Where Obra.Director3=Director.Codigo) Director3
from Obra
__________________
[Crandel]
Responder Con Cita
  #3  
Antiguo 13-02-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Código SQL [-]
Select O.Concepto, D1.Nombre, D2.NOmbre, D3.Nombre
From Obra O
join Director D1 on O.Director1=D1.COdigo
join Director D2 on O.Director2=D2.Codigo
join Director D3 on O.Director3=D3.Codigo
__________________

Responder Con Cita
  #4  
Antiguo 13-02-2007
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 23
Crandel Va por buen camino
tambien podria ser algo asi:

Código SQL [-]
select Concepto, D1.Nombre, D2.Nombre, D3.Nombre
from Obra, Director D1, Director D2, Director D3
where D1.Codigo = Director1
   and D2.Codigo = Director2
   and D3.Codigo = Director3
__________________
[Crandel]
Responder Con Cita
  #5  
Antiguo 13-02-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Así es, tambien es equivalente...

El problema en esos casos, es cuando supongamos que el valor de Director3 es Null y al no haber ninguna conincidencia, no te regresaría ningún resultado. En cambio, utilizando un join, puedes utilizar la opción "left outer join" y esto te regresará las obras sin importar si falta algún dato de alguno de los directores...

Habría que ver como esta diseñada la base de datos y demas menesteres, pero por esa situación que te comento, yo prefiero utilizar joins.

__________________

Responder Con Cita
  #6  
Antiguo 15-02-2007
Jose_Pérez Jose_Pérez is offline
Miembro
 
Registrado: may 2003
Posts: 156
Poder: 22
Jose_Pérez Va por buen camino
Muchas gracias por vuestras respuestas.

Ahora mismo estoy con otra tarea, pero lo probaré en cuanto pueda.

Saludos.
Responder Con Cita
Respuesta



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
Actualizar un campo de una tabla con datos que se encuentran en otra tabla Morphine SQL 4 15-12-2006 22:47:42
Algún componente Descendiente de dbGrid para enlazar a más de 1 tabla ???? AGAG4 Varios 2 06-11-2006 10:07:44
Ordenar Una tabla por un Campo de otras Tabla teletranx Conexión con bases de datos 2 18-08-2006 15:56:35
UPDATE de un campo dependiendo del valor de un campo de otra tabla Javi2 SQL 5 18-04-2005 16:35:05
ayuda para enlazar con otra tabla Debian Conexión con bases de datos 1 24-03-2005 16:48:28


La franja horaria es GMT +2. Ahora son las 12:00:42.


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