Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Diferencias entre INNER JOIN, LEFT JOIN y RIGHT JOIN

Estas en el tema de Diferencias entre INNER JOIN, LEFT JOIN y RIGHT JOIN en el foro de Mysql en Foros del Web. Hola, mi consulta es la diferencia existente entre INNER JOIN, LEFT JOIN y RIGTH JOIN, me confundo un poco cuando debo utilizarlos, unos ejemplitos no ...
  #1 (permalink)  
Antiguo 11/02/2008, 07:51
 
Fecha de Ingreso: junio-2006
Mensajes: 330
Antigüedad: 17 años, 10 meses
Puntos: 4
Diferencias entre INNER JOIN, LEFT JOIN y RIGHT JOIN

Hola, mi consulta es la diferencia existente entre INNER JOIN, LEFT JOIN y RIGTH JOIN, me confundo un poco cuando debo utilizarlos, unos ejemplitos no vendrian mal..

Gracias!!!
  #2 (permalink)  
Antiguo 11/02/2008, 07:56
Avatar de m4xp0wer  
Fecha de Ingreso: septiembre-2007
Mensajes: 66
Antigüedad: 16 años, 7 meses
Puntos: 1
Re: Diferencias entre INNER JOIN, LEFT JOIN y RIGHT JOIN

A inner join B on (condición): devuelve el conjunto de registros de AxB (producto cartesiano) que cumplen la condición.
A left join B on (condición):para cada registro de A, devuelve los de B que cumplan la condición. SI no hay ningún registro en B que cumpla la condición, se devuelve un registro con los campos de B a NULL. Right join creo que es igual pero para el otro lado.

Imagínate tienes una tabla con clientes y otra con compras. Si quieres ver todas las compras con los datos de los clientes te bastaría con un INNER JOIN, pero si quisieras ver también los clientes que no realizaron ninguna compra necesitarías el LEFT JOIN

No sé si me he explicado bien
  #3 (permalink)  
Antiguo 11/02/2008, 11:07
 
Fecha de Ingreso: junio-2006
Mensajes: 330
Antigüedad: 17 años, 10 meses
Puntos: 4
Re: Diferencias entre INNER JOIN, LEFT JOIN y RIGHT JOIN

wao!!! gracias!! lo pondre bien en practica...
  #4 (permalink)  
Antiguo 21/12/2008, 01:00
 
Fecha de Ingreso: diciembre-2008
Mensajes: 5
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Diferencias entre INNER JOIN, LEFT JOIN y RIGHT JOIN

Agrego mi pregunta!
Y si yo quisiera conseguir cada registro A, y el primero de los B que le corresponde?
es decir...
Cada cliente, y si tiene compras, la primera, sino, igualmente conseguir el cliente...
  #5 (permalink)  
Antiguo 21/12/2008, 02:44
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Diferencias entre INNER JOIN, LEFT JOIN y RIGHT JOIN

Nerotkd,

Si tienes dos tablas, una de clientes y otra de compras y en la tabla compras tienes un campo fecha, y otro campo refidcliente que es FK del PK id_cliente de la tabla clientes, con algo así:

Código sql:
Ver original
  1. SELECT cl.cliente, t1.primeracompra
  2. FROM clientes cl
  3. LEFT JOIN (
  4.  
  5. SELECT refidcliente cli, MIN( fecha ) primeracompra
  6. FROM compra
  7. GROUP BY refidcliente
  8. )t1 ON cl.id_cliente = t1.cli
  9. ORDER BY cl.cliente

Eso te mostrará en NULL la fecha de compra de esos clientes que no han comprado, pero también mostrará su nombre. Podrás quitar ese null y poner lo que quieras con IFNULL(). Mira en el manual de MySQL sobre IFNULL.

Deberías haber abierto un nuevo hilo, porque aquí poca gente verá tu duda. Es política del foro no reabrir viejos hilos. Otra vez, abre uno nuevo con tu duda: así lo verá más gente.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 4 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 12:03.