Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Los mejores trucos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-07-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Filtros en tablas. Diferencias entre SQL 87 y 92

Si ponemos el ejemplo:

Código SQL [-]
SELECT c.Cliente,c.Nombre,h.Articulo,h.Cantidad
from clientes c, historico h
where ( c.cliente = h.Cliente )

Tendremos un resultado que es una tabla virtual que contiene el producto cartesiano del cruzamiento de ambas tablas (Es decir que solo saldrán los datos que estén en ambas tablas y no saldrá un cliente que no tenga movimientos), esto es lo que lo que se suele llamar aritmética relacional.

En esta sintaxis estamos empleando SQL 87 y es una sintaxis muy antigua ya que la clausula WHERE se utiliza para relacionar y no para filtrar.

Si pasamos a SQL 92 lo haremos con la siguiente sintaxis:

Código SQL [-]
SELECT c.Cliente,c.Nombre,h.Articulo,h.Cantidad
from clientes c
JOIN historico h ON ( c.cliente = h.Cliente )

Es lo mismo salvo que hemos añadido: JOIN y la clausula de unión se establece en ON.

Si ahora añadimos LEFT delante de JOIN:

Código SQL [-]
SELECT c.Cliente,c.Nombre,h.Articulo,h.Cantidad
from clientes c
LEFT JOIN historico h ON ( c.cliente = h.Cliente )

Entonces obtendemos TODOS los registros de la tabla de la izquierda. También existen otras clausulas RIGHT, INNER, OUTER, etc...
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


La franja horaria es GMT +2. Ahora son las 18:02: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