Outer joins en SQL
Hace dÃas que llevo pensando en explicar cómo hacer un outer join en SQL (MySQL y Oracle), y hoy he encontrado unos diagramas que explican los diferentes tipos de joins que podemos hacer (MySQL).
El outer join se usa cuando queremos que obtener todos los campos de una tabla que cumplen una condición y los campos de otra tabla que coinciden con los de la primera tabla.

Imaginamos que tenemos una tabla de palabras en inglés y una tabla de traduciones:
Tabla : palabras id / palabra 1 / bird 2 / flower 3 / sky 4 / tree
Tabla: traducciones id / traduccion / idioma 1 / pájaro / es 3 / cielo / es
Se trata de tener la tabla de palabras y sus correspondientes traducciones (en este caso solo lo he hecho para español, pero se podrÃan incluir registros para otros idiomas). Si nos fijamos veremos que un join normal no lo podremos hacer porque si igualamos el id de palabras y traducciones habrá registros que no se mostrarán en la tabla de palabras porque no existen sus correspondientes en la tabla de traducciones. Por ello deberemos ejecutar las siguientes instrucciones en MySQL y Oracle:
/* MySQL */ SELECT * FROM palabras LEFT OUTER JOIN traducciones ON palabras.id = traducciones.id /* Oracle */ SELECT palabra, traduccion FROM palabras, traducciones WHERE palabras.id = traducciones.id (+)
Echadle un vistazo al resto de representaciones gráficas de los joins porque son muy aclaratorias.
Después de 9 meses de
El otro dÃa nos preguntaban una forma de migrar una base de datos Access a otra MySQL. En ese momento no conocÃa ninguna aplicación que pudiera hacerlo, pero hoy me he enterado que los propios de MySQL tienen MySQL Migration Toolkit, que permite mediante una serie de pasos realizar una migración de forma correcta.