3 messages in com.mysql.lists.mysql-esRE: duda left join
FromSent OnAttachments
Fernando del Fresno García07 May 2008 08:29 
Alejandro Rigalt07 May 2008 08:50 
Leonardo Aguilar07 May 2008 10:56 
Subject:RE: duda left join
From:Alejandro Rigalt (arig@hotmail.com)
Date:05/07/2008 08:50:34 AM
List:com.mysql.lists.mysql-es

Es muy interesante que gracias a las listas se aprende todos los dias, muchas
gracias por tu aportación de oracle, actualmente yo no manejo oracle pero si esta en mi interminable lista de cosas
que aprender, lo que si he usado es el left join de mysql entonces el left,
right o inner join son cosas que veo a diario, básicamente el left te une tu
tabla de empresa con todos los datos que encuentre o no de provincias, como que
usara tu tabla de empresa como pivote y el right (que no viene a tu caso) te
muestra las empresa y todas las provincias, para tu caso no tiene sentido pero
es ejemplo, y el inner pues solo los que sean iguales ocultando los que no estan
en provincias.

select * from empresa

left join provincias on (empresa.id_provincia=provincias.id);

From: fdel@agecam.es To: mysq@lists.mysql.com Subject: duda left join Date: Wed, 7 May 2008 17:29:58 +0200

Muy Buenas, quería consultar una duda.

Siempre he utilizado Oracle en mis desarrollos y las consultas que me obligaban hacer productos cartesianos (unir unas tablas con otras por medio de un id, por ejemplo) lo hacía así:

Select * from empresas, provincias where empresas.id_provincia (+) = provincias.id

(el (+) significa que si se intenta cruzar por un campo que es nulo, lo muestra de igual manera)

Pero ahora con MySQL CREO sólo se puede hacer de esta manera:

Select * from empresas

LEFT JOIN provincias ON empresas.id_provincia = provincias.id

- ¿Esa es la única manera de hacer un join en MySQL?

- ¿Si quisiera seguir haciendo cruces debería seguir añadiendo líneas como esta?:

LEFT JOIN otra_tabla ON empresas.id_otro = otra_tabla.id

Cualquier ayuda me servirá. Muchísimas gracias