Tutorial de MySQL - Conjunción Interna de Tablas


Una conjunción sucede cuando se unen las filas de dos o más tablas, unas de lado de otras y no unas debajo de otras como sucede con UNION. La conjunción interna consiste en unir las filas de dos tablas mediante una columna que ambas tienen en común. En la tabla generada por la conjunción interna solamente se mostrarán las filas de ambas tablas que tengan campos comunes, el resto no se mostrará. Para entender un poco mejor  supongamos que tenemos una tabla llamada usuarios y otra tabla llamada comentarios, como se muestra a continuación:
nick
pais
rayworld
Mexico
Susana
Chile
Edgar
Colombia

autor
contenido
rayworld
Hollaass!!
rayworld
Muy buenas fotos
rayworld
Que buena página
rayworld
Todo bien por aca…
andres
Todo anda bien..














Ahora si quisiéramos realizar una conjunción interna, primeramente debemos identificar cuales son las columnas, en ambas tablas, que contienen el mismo tipo de valores, aunque los nombres de columna sean diferentes, en este caso, nick y autor. Ahora debemos realizar una consulta SELECT junto con WHERE para realizar la conjunción interna, el formato de la consulta MySQL es el siguiente:
SELECT columna1,columna2,columna3… FROM tabla1,tabla2  WHERE tabla.columnaComun =tabla.columnaComun

Quedando de la siguiente forma la consulta MySQL:

SELECT nick,país,autor,contenido FROM usuarios,comentarios WHERE usuarios.nick = comentarios.autor
Generando la siguiente tabla como resultado:
nick
pais
autor
contenido
rayworld
Mexico
rayworld
Hollaass!!
rayworld
Mexico
rayworld
Muy buenas fotos
rayworld
Mexico
rayworld
Que buena página
rayworld
Mexico
rayworld
Todo bien por aca..
Como se puede observar  solo se han mostrado las filas de ambas tablas que tienen nombres de usuario comunes. En este caso ambas tablas solo tienen el usuario rayworld como valor común y por último todo el resto de filas se has descartado. Podemos decir, que una conjunción Interna es la unión de las filas de varias tablas que tienen valores comunes en una determinada columna.

No comments:

Post a Comment