INNER JOIN: Consulta Mysql para Unir Tablas Relacionadas

Supongamos que tenemos una Tabla Mysql llamada “Empresas” y otra tabla “Servicios”.

Y nos interesa mostrar en pantalla los servicios que brinda cada empresa, considerando que cada fila de la tabla “Servicios” tiene un valor asociado a la empresa que pertenece.

(ver el siguiente grafico)

Consulta Mysql INNER JOIN para unir tablas relacionadas
¿Cómo listar todas las empresas y sus servicios correspondiente?
Lo hacemos utilizando INNER JOIN mediante la siguiente Consulta Mysql:


>> Ver resultado de la consulta Mysql INNER JOIN citada arriba

 

Nota 1:: Como se puede observar en el resultado, la empresa YouTube queda afuera del listado. El motivo es que no tiene ningún servicio asociado en la tabla SERVICIOS (no existe servicio que tenga IdEmpresa=3).

Nota 2:: Deseas ganar dinero desde tu casa y programando sitios en PHP?
En Freelancer.com podrás encontrar los requerimientos de muchos clientes, publicar tu presupuesto y obtener proyectos!

Si quisieramos listar todas las empresas, independientemente que tengan servicios o no, debemos utilizar la Consulta Mysql LEFT JOIN

¿Cómo se interpreta las tablas Mysql y consulta que hicimos arriba?

Observemos que hay una columna llamada “IdEmpresa” en la tabla “Servicios” en donde se especifica el identificador de la empresa a la cual pertenece el servicio en cuestión. Por ejemplo, el servicio “Registro de dominios” tiene IdEmpresa=2, por lo tanto pertenece a la empresa Solo10.com.

Buscas dominio para tu sitio y un excelente hosting con soporte técnico en español?
Te recomiendo mi proveedor: Solo10.com

Para comprender esta consulta mysql inner join, te conviene leerla de la siguiente manera. Imaginemos que estamos conversando con el motor de base de datos mysql y le decimos:

 

  • Traeme todas las filas de la tabla mysql llamada “Empresa” (ver línea número 2: “from Empresas”)
  • A cada fila, agregale las columnas de la tabla mysql “Servicios” (únicamente las columnas de aquellas filas en donde IdEmpresa sea igual al Id de la empresa correspondiente a la fila actual en la tabla Empresas) (ver línea número 3: “inner join Servicios on Servicios.IdEmpresa=Empresas.Id”)
  • De todo ese conjunto de columnas, dame únicamente la columna “Nombre” de la tabla Mysql “Empresas” y “Servicio” de la tabla mysql “Servicios”. (ver línea número 1: select Empresas.Nombre,Servicios.Servicio)

Nuestro código fuente php quedaría completo de la siguiente manera:


Las últimas líneas del código, tal como hemos visto hace un tiempo, son para leer e imprimir en pantalla los resultados de una consulta Mysql.

Ejemplos de inner join mysql

Si quieres ver más ejemplos de consultas mysql que utilizan la expresión inner join para unir tablas relacionadas, como ejemplos para consultar 2 tablas, etc te recomiendo que eches un vistazo a los libros que aparecen recomendados en la columna de la derecha. Podrás ver ejemplos de consultas mysql en php y aprender a corregir los problemas habituales de sintaxis sql.

You may also like...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *