Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Unir el codigo y nombre de tablas diferentes (https://www.clubdelphi.com/foros/showthread.php?t=66820)

Jose Manuel 13-03-2010 10:11:14

Unir el codigo y nombre de tablas diferentes
 
Hola, no se como realizar la siguiente consulta: Tengo 2 tablas, una con los nombre de personas y otra con los codigos de las personas, y quiero que en la consulta, me ponga el codigo de la persona y su nombre. El resultado de mi consulta debería quedar de la siguiente manera:
Código:

N_informe        N_PROPIETARIO        N_ENVIA        N_RECIBE
11235        1-PEPE        2-LUIS        3-BELEN
22344        3-BELEN        1-PEPE        2-LUIS
32312        3-BELEN        2-LUIS        4-MARIA

Pero utilizando las siguientes instrucciones, solo obtengo la traducción para N_PROPIETARIO, y me falta N_ENVIA y N_RECIBE.

Código SQL [-]
SELECT
  "INFORMES"."n_informe" AS informe,
  "INFORMES"."n_propietario" AS n_propietario,
  "PERSONAL"."c_nombre" AS c_propietario,
  "INFORMES"."n_envia" AS n_envia,
  "INFORMES"."n_recibe" AS n_recibe
FROM
   Informes, personal
WHERE
  "INFORMES"."n_propietario" = "PERSONAL"."n_codigo"

Código:

N_informe        N_PROPIETARIO        N_ENVIA        N_RECIBE
11235        1-PEPE          2        3
22344        3-BELEN          1        2
32312        3-BELEN          2        4

Estos son los campos de la tabla PERSONAL
Código SQL [-]
CREATE TABLE "PERSONAL" (
"n_codigo" NUMBER(4),
"c_nombre" VARCHAR2(50),
CONSTRAINT personal_pk PRIMARY KEY("n_codigo"));

Insert into "PERSONAL" ("n_codigo","c_nombre") Values (1, 'PEPE');
Insert into "PERSONAL" ("n_codigo","c_nombre") Values (2, 'LUIS');
Insert into "PERSONAL" ("n_codigo","c_nombre") Values (3, 'BELEN');
Insert into "PERSONAL" ("n_codigo","c_nombre") Values (4, 'MARIA');

Estos son los campos de la tabla INFORMES
Código SQL [-]
CREATE TABLE "INFORMES" (
"n_informe" NUMBER(4),
"n_propietario" NUMBER(4),
"n_envia" NUMBER(4),
"n_recibe" NUMBER(4),
CONSTRAINT informes_pk PRIMARY KEY("n_informe"));

Insert into "INFORMES" ("n_informe","n_propietario","n_envia","n_recibe") Values (1, 1, 2,3);
Insert into "INFORMES" ("n_informe","n_propietario","n_envia","n_recibe") Values (2, 3, 1,2);
Insert into "INFORMES" ("n_informe","n_propietario","n_envia","n_recibe") Values (3, 3, 2,4);

Jose Manuel 13-03-2010 11:26:38

Despues de poner el mensaje, he visto que la solución sería esta:

Código SQL [-]
SELECT  distinct
  "INFORMES"."n_informe" AS informe,
  "INFORMES"."n_propietario" AS n_propietario,
   (SELECT  "PERSONAL"."c_nombre"  FROM  personal WHERE
   "INFORMES"."n_propietario" = "PERSONAL"."n_codigo") AS c_propietario,
  "INFORMES"."n_envia" AS n_envia,
   (SELECT  "PERSONAL"."c_nombre"  FROM  personal WHERE
   "INFORMES"."n_envia" = "PERSONAL"."n_codigo") AS c_envia,
  "INFORMES"."n_recibe" AS n_recibe,
   (SELECT  "PERSONAL"."c_nombre"  FROM  personal WHERE
   "INFORMES"."n_recibe" = "PERSONAL"."n_codigo") AS c_recibe
FROM
   Informes, personal


La franja horaria es GMT +2. Ahora son las 13:43:17.

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