He visto una consulta usando un LEFT JOIN
en comparación con un INNER
o .¿Qué es una UNIÓN IZQUIERDA en PostgreSQL
¿Qué es un LEFT JOIN
exactamente?
He visto una consulta usando un LEFT JOIN
en comparación con un INNER
o .¿Qué es una UNIÓN IZQUIERDA en PostgreSQL
¿Qué es un LEFT JOIN
exactamente?
Donde inner join
devuelve solo las entradas que coinciden en ambas tablas, un left join
toma todas las entradas de la primera tabla y las que coincidan en la segunda tabla. A right join
es el reverso de una left join
(es decir: todos de la segunda tabla)
Así que si TableA es
A B
1 a
2 b
3 c
y TableB es
A B
1 d
2 e
Entonces Select * from TableA inner join TableB on TableA.A = TableB.A
rendimientos
1 a 1 d
2 b 2 e
Y Select * from TableA left join TableB on TableA.A = TableB.A
devuelve
1 a 1 d
2 b 2 e
3 c null null
Creo que los resultados no son correctos. La primera consulta debería dar 1 a 1 d/2b 2 e La segunda consulta debería dar: 1 a 1 d/2b 2 e/3 c NULL NULL. –
@RolandBouman Sí, deberían :) – podiluska
Es lo mismo que IZQUIERDA EXTERIOR (El exterior está implícito porque un INNER JOIN requiere coincidencia bilateral por lo que un LEFT INNER JOIN
no tendría ningún sentido). Lo mismo se aplica para RIGHT JOIN
y FULL JOIN
estos son equivalentes a RIGHT OUTER JOIN
y FULL OUTER JOIN
respectivamente
Una explicación más gráfico: [Visual-Representación-de-SQL-une] (http://www.codeproject.com/Articles/33052/Visual -Representation-of-SQL-Joins) – doctore
Todos los tipos JOIN de PostgreSQL se explican [en el manual] (http://www.postgresql.org/docs/current/interactive/queries-table-expressions.html#QUERIES-JOIN) incluyendo ejemplos. Básicamente, la palabra clave 'OUTER' es opcional para las combinaciones' LEFT', 'RIGHT' y' FULL'. –