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.

 

 

 

 

 

Conjunción externa de tablas.
2.8

Copyright © 2013 LaWebDeRay
correo:lawebderay@gmail.com

Free Web Hosting