No manches.....!!!!!!!! No entendi la pregunta pero un join en codigo es unicamente seleccionando las tablas:
select * from tabla1,tabla2
where tabla1.id=tabla2.id
Con esto haces un join en el que encuentres los datos que coincidan con las 2 tablas, ya que hay muchos tipos de joins.
2006-10-31 04:08:51
·
answer #1
·
answered by manuel220 3
·
1⤊
0⤋
La operación JOIN más común es INNER JOIN, cuya sintaxis es:
tabla1 INNER JOIN tabla2 ON tabla1.campo_común=tabla2.campo_común
Donde tabla1 y tabla2 representan el nombre de las tablas a combinar. Ambas tablas han de tener un campo común o igual para poder realizar correctamente la combinación de los datos. Pero veamos un ejemplo para entenderlo mejor:
SELECT * FROM pedidos INNER JOIN clientes ON pedidos.codigo_cliente =clientes.codigo_cliente;
El resultado será un conjunto de registros con los datos de las dos tablas. Este conjunto poseerá el nombre de todos los campos de la tabla pedidos y de todos los campos de la tabla clientes. En cada registro aparecerán los datos relacionados, es decir, que en un pedido aparecerán los datos del mismo y los datos personales del cliente que realizó el pedido.
La operación INNER JOIN combina los datos de las dos tablas siempre que haya valores coincidentes en los campos comunes o enlazados.
Existen también otras dos formas de combinar: LEFT JOIN y RIGHT JOIN. Ambas tienen la misma sintaxis que INNER JOIN, pero estas operaciones incluyen todos los registros de una tabla y aquellos registros de la otra en que los campos comunes sean iguales. En la operación LEFT JOIN, incluye todos los registros de la primera tabla (parámetro tabla1) y aquellos registros de la segunda tabla (parámetro tabla2) en que los campos comunes sean iguales. En la operación RIGHT JOIN ocurre lo contrario: incluye todos los registros de la segunda tabla y aquellos registros de la primera tabla en que los campos comunes sean iguales.
Aunque la diferencia entre las tres operaciones parezca inexistente, en realidad sí existe. La operación INNER JOIN realiza una combinación con todos aquellos registros de las dos tablas en que el campo común de ambas tenga el mismo valor, mientras que las operaciones LEFT JOIN y RIGHT JOIN realizan la combinación de todos los registros de la tabla que combinan (ya sea la primera para LEFT JOIN o la segunda para RIGHT JOIN), aunque en la otra tabla, en el campo común no haya coincidencia. La prueba se ve rápidamente si se introduce un código de cliente en el campo campo_cliente de la tabla pedidos que no exista:
SELECT * FROM pedidos INNER JOIN clientes ON pedidos.codigo_cliente =clientes.codigo_cliente;
El registro que contiene el pedido del cliente que no existe no aparece, puesto que no hay coincidencia. Si escribimos:
SELECT * FROM pedidos LEFT JOIN clientes ON pedidos.codigo_cliente =clientes.codigo_cliente;
Observaremos que aparecen todos los registros de la tabla pedidos, incluido aquel donde indicamos que el pedido fue solicitado por el cliente inexistente, pero en los campos relacionados (campos de la tabla clientes) no habrá ningún dato relacionado o combinado. Si ahora escribimos lo siguiente:
SELECT * FROM pedidos LEFT JOIN clientes ON pedidos.codigo_cliente =clientes.codigo_cliente; obtendremos el mismo resultado que con la operación INNER JOIN, puesto que se visualizan todos aquellos registros que existen en clientes y aquellos que coincidan con el campo clave en la tabla pedidos. Como el código inexistente no existe en la tabla clientes, este registro no aparece. Para comprobar el efecto aún mejor, modificar el código inexistente en el registro de la tabla pedidos por uno que sí exista. Tras ello, volver a introducir las sentencias SQL para comprobar la diferencia.
Lo más normal es utilizar la operación INNER JOIN para omitir aquellos registros no coincidentes, aunque las operaciones LEFT JOIN y RIGHT JOIN nos pueden servir para descubrir entradas erróneas en códigos.
Veamos algunos ejemplos más:
SELECT fecha, codigo_producto, unidades, apellidos, nombre FROM pedidos INNER JOIN clientes ON pedidos.codigo_cliente = clientes.codigo_cliente WHERE fecha<#1/6/97#;
Combina pedidos y clientes, visualizando aquellos pedidos realizados antes del 6 de Enero de 1997 por los campos fecha, codigo_producto, unidades, apellidos y nombre.
SELECT fecha, unidades, productos.* FROM pedidos INNER JOIN productos ON pedidos.codigo_producto = productos.codigo_producto;
Combina pedidos y productos, visualizando los pedidos por los campos fecha y unidades, y por todos los campos de la tabla productos.
SELECT fecha, unidades, productos.* FROM pedidos INNER JOIN productos ON pedidos.codigo_producto = productos.codigo_producto ORDER BY fecha, producto;
El resultado será el mismo que con el anterior ejemplo, salvo que la presentación de los registros se realizará ordenada por la fecha y el nombre del producto.
2006-10-31 12:14:00
·
answer #2
·
answered by Alejandro_sistemas 3
·
1⤊
0⤋
SELECT * FROM tabla1, tabla2 WHERE =aqui tus datos=
2006-10-31 12:56:06
·
answer #3
·
answered by alenm8816 4
·
0⤊
0⤋
Tablas maestro y de detalle:
MASTER
-------------
ID_MASTER int not null primary key,
PADRE nvarchar2(50)
DETALLE
------------
ID_DETALLE int not null primary key,
HIJO nvarchar2(50),
ID_MASTER int
Creo que el query sería así:
SELECT A.HIJO AS HIJOS_TODOS
FROM MASTER A, DETALLE B
WHERE A.PADRE='ENRIQUE PASTRAMI'
AND A.ID_MASTER=B.ID_MASTER
Simplemente relacionas el papá que se llama Enrique Pastrami con sus hijos. Aquí como resultado te dá una tabla de los hijos.
HIJOS_TODOS
----------------
JASIEL PASTRAMI
VICTOR PASTRAMI
2006-10-31 12:19:58
·
answer #4
·
answered by Marco 2
·
0⤊
0⤋