Articulos PHP
Articulos Jquery
Articulos CSS
2.8 Conjunción externa de tablas.
En una conjunción externa se muestran todas las filas de una determinada tabla y la otra tabla se adapta a la primera. En una conjunción externa se muestran todas las filas de una tabla y las filas de esta tabla que no existan en la segunda tabla se mostrarán como campos vacÃos en la segunda tabla, es decir, en una conjunción externa hay dos tablas, la primera se muestra completa y la segunda adapta sus filas a los valores de la primera. Para realizar una conjunción externa podemos usar LEFT JOIN para indicar que la tabla a la izquierda es la que se mostrará completa y RIGHT JOIN para indicar que la tabla a la derecha es la que se mostrará completa. Entonces la estructura queda como sigue:
- tablaCompleta LEFT JOIN tabla que adapta sus filas
- tabla que adapta sus filas RIGHT JOIN tablaCompleta
Es importante señalar que al decir tabla completa, significa que se mostrarán todas las filas, pero no es obligatorio que se muestren todas las columnas, eso es opcional, de modo que si podemos decidir que columnas ver y cuales no.
Otro punto importante que recordar es que en la conjunción externa también debe haber columnas comunes en las tablas que se vincularán, de forma que la estructura de la consulta queda como sigue:
SELECT columnas que se mostrarán FROM tabla completa LEFT JOIN tabla que se adapta ON columna común = columna común
Para entender un poco mejor, supongamos que tenemos dos tablas, una llamada comentarios y otra llamada usuarios, como se muestra a continuación:
               id           contenido                                                   autor |
               7            mmm solo mi humilde opinion                           andres |
               2            holass como estas                                    rayworld |
               3            YO ESTOY MUY BIEN Y TU                      rayworld |
               4            mmm no se que poner                            rayworld |
               5            todo anda muy bien por aca                  rayworld |
               6            mmmm la verdad no se que me scede rayworld |
nick                     pais |
rayworld            Mexico |
 Susana                            Chile |
Edgar                Colombia |
Ahora supongamos que queremos mostrar todas las filas de la tabla comentarios y que se muestre el paÃs de la persona que escribió el comentario, entonces debemos realizar una conjunción externa como se muestra a continuación:
SELECT autor, contenido, nick, pais FROM comentarios LEFT JOIN usuarios ON comentarios.autor = usuarios.nick
|
|||
autor |
contenido |
nick |
pais |
andres |
mmm solo mi humilde opinion |
NULL |
NULL |
rayworld |
holass como estas |
rayworld |
Mexico |
rayworld |
YO ESTOY MUY BIEN Y TU |
rayworld |
Mexico |
rayworld |
mmm no se que poner |
rayworld |
Mexico |
rayworld |
todo anda muy bien por aca |
rayworld |
Mexico |
rayworld |
mmmm la verdad no se que me scede |
rayworld |
Mexico |
Como se puede observar se han mostrado todas las filas de la tabla comentarios pero únicamente las filas de la tabla usuarios que corresponden a las filas de la tabla comentarios, y cuando no hay filas de la tabla usuarios que correspondan a comentarios se han mostrado campos vacÃos, es decir, la tabla usuarios se adapto a la tabla comentarios.
Ahora, en caso de que necesitemos que la tabla  usuarios se muestre completa y que la tabla comentarios se ajuste, entonces la consulta serÃa como sigue:
SELECT autor, contenido, nick, pais FROM comentarios RIGHT JOIN usuarios ON comments.autor = users.nick
Como se puede observar ahora se ha usado RIGHT JOIN para indicar que la tabla a la derecha es la que se muestra con todas sus filas, es decir, usuarios.
|
|||
autor |
contenido |
nick |
pais |
rayworld |
holass como estas |
rayworld |
Mexico |
rayworld |
YO ESTOY MUY BIEN Y TU |
rayworld |
Mexico |
rayworld |
mmm no se que poner |
rayworld |
Mexico |
rayworld |
todo anda muy bien por aca |
rayworld |
Mexico |
rayworld |
mmmm la verdad no se que me scede |
rayworld |
Mexico |
NULL |
NULL |
Susana |
Chile |
NULL |
NULL |
Edgar |
Colombia |
Ahora podemos ver que la tabla que se muestra con todas sus filas es Usuarios y que la tabla que muestra solo unas cuantas de sus filas es comentarios.