El lenguaje SQL permite unir tablas, pero a veces estos comandos se olvidan y/o nos confundimos sobre el verdadero propósito de cada uno.
Veamos la imagen siguiente, que representa las distintas formas de JOINS:
INNER JOIN
Intersección entre mesas.
Ejemplo:
SELECT <colunas> FROM Table_A A INNER JOIN Table_B B ON A.Key = B.Key
RIGHT JOIN y LEFT JOIN
Además de la intersección, también busca resultados que no tengan intersección. LEFT JOIN toma los resultados de la tabla de la izquierda, más el resultado de la intersección entre las dos tablas, y RIGHT JOIN toma los valores de la tabla de la derecha, más el resultado de la intersección entre las dos tablas.
Ejemplo:
SELECT <colunas> FROM Table_A A LEFT JOIN Table_B B ON A.Key = B.Key
SELECT <colunas> FROM Table_A A RIGHT JOIN Table_B B ON A.Key = B.Key
UNIÓN EXTERNA COMPLETA
Además de la intersección, también realiza LEFT JOIN y RIGHT JOIN, es decir, busca en la tabla A los resultados que no tienen intersección, busca en la tabla B los resultados que no tienen intersección y, por último, busca los resultados de la intersección.
Ejemplo:
SELECT <colunas> FROM Table_A A FULL OUTER JOIN Table_B B ON A.Key = B.Key