Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #26  
Antiguo 23-01-2009
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 24
ASAPLTDA Va por buen camino
Join de Tablas

Por favor disculpen la parrafos en mayuscula

Por lo que para este sencillo caso, sería lo mismo o aún mejor hacer...

Código SQL [-]
select h.nopedido, h.codigocliente, c.nombrecliente NOMBRE_CLIENTE, 
from pedidos_header h, clientes c
where c.codigocliente=h.codigocliente
[/quote]

Es cierto que el join de tablas es bueno, pero en algunos casos tienen un limite por ejemplo en la busqueda de valores dependientes de otras tablas o tablas con muchas relaciones externas por ejemplo un maestro de clientes facilmente podria tener 5 a 10 relaciones (Ojo Se que se puede crear con una vista y luego reutilizar la vista)
por Ejemplo asumamos que con el prefijo del telefono puedo encontrar el estado(State) del cliente
Código SQL [-]
CREATE TABLE CLIENTES
 CLIENTE CLIENTE ,
 PREFIJO_TELEFONO,
 CONTINENTE CONTINENTE
 PAIS PAIS
 CIUDAD CIUDAD
CREATE TABLE PAISES
PAIS PAIS
PAIS_NOMBRE
Código SQL [-]
 CREATE TABLE CIUDADES
 CIUDAD CIUDAD
 CIUDAD_NOMBRE
CREATE TABLE EMPLEADOS
EMPLEADO EMPLEADO
PAIS PAIS
CIUDAD CIUDAD


SELECT CLIENTE, PAIS_NOMBRE, CIUDAD_NOMBRE FROM CLIENTES C
LEFT OUTER JOIN PAISES P ON C.PAIS= P.PAIS
LEFT OUTER JOIN CIUDAD X ON X.CIUDAD= C.CIUDAD

y asi podemos complicar un join bastante, pero si hacemos funciones que en el manual dice que son de resultado tabla(VARIAS CAMPOS) PODEMOS HACER LAGO PARECIDO A ESTO OJO SIN PROBAR HE LEIDO EL MANUAL SOLAMENTE
Código SQL [-]
CREATE FUNCTION UBIC GEOGRAFICA(P_PAIS, P_CIUDAD)
RETURNA TABLA
SELECT PAISNOMBRE FROM PAISES INTO O_PAIS_NOMBRE;
SELECT PAISNOMBRE FROM PAISES INTO O_CIUDAD_NOMBRE;
RETURN PAISNOMBRE, CIUDAD_NOMBRE

LA INTRUCCION ANTERIOR QUEDARIA COMO ESTO
Código SQL [-]
 SELECT CLIENTE, UBIC GEOGRAFICA(PAIS,CIUDAD) FROM CLIENTES C

usando la funcion para el maestro de empleados quedaria
Código SQL [-]
 SELECT EMPLEADO, UBIC GEOGRAFICA(PAIS,CIUDAD) FROM EMPLEADOS C
y aqui iniciamos a tener el un mayor poder y ademas reutilizando la mismas funcion, esto msi lo he probado en DB2 del sistema as400 y funciona

Si todo esto es correcto abre nuevas alternativas a la programacion via SQL, esto posiblmente lo tendra firebird en la version 3 pero falta al menos 1 año para poder usarlo

Última edición por ASAPLTDA fecha: 25-01-2009 a las 16:56:06.
Responder Con Cita
 


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 BD MySQL entre ordenadores Ezecool MySQL 8 23-01-2008 09:08:47
Interacción entre Pervasive y MySQL lucero_chivas C++ Builder 0 12-04-2007 20:38:29
Diferencia entre firebird y firebird pdb aledieb Firebird e Interbase 2 19-11-2006 13:10:17
Diferencias entre Interbase y FireBird erickperez6 Firebird e Interbase 2 22-05-2006 21:14:38
consultas SQL entre delphi y MySQL docarrillo SQL 1 03-07-2003 02:31:22


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


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