• 26/11/2013
  • admin
  • 0

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.
¿Cómo listar todas las empresas y sus servicios correspondiente?

Lo hacemos utilizando INNER JOIN mediante la siguiente Consulta Mysql:

«select Empresas.Nombre,Servicios.Servicio from Empresas inner join Servicios on Servicios.IdEmpresa=Empresas.Id»;

Si quisiéramos 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.

Para comprender esta consulta mysql, te conviene leerla de la siguiente manera. Imaginemos que estamos conversando con el motor de base de datos mysql y le decimos:
Tráeme todas las filas de la tabla mysql llamada “Empresa” (ver línea número 2: “from Empresas”)

A cada fila, agrégale 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:

// Conexión con la base de datos Mysql

$conexion=mysql_connect(‘localhost’,’Tu-Usuario-Mysql’,’Contraseña-de-tu-Usuari-Mysql’);
mysql_select_db(‘Nombre-de-tu-Base-de-datos-Mysql’,$conexion);

// Consulta Mysql donde aplicamos INNER JOIN
$consulta_mysql=»select Empresas.Nombre,Servicios.Servicio
from Empresas
inner join Servicios on Empresas.Id=Servicios.IdEmpresa»;
$resultado_consulta_mysql=mysql_query($consulta_mysql,$conexion);

// Navegamos cada fila que devuelve la consulta mysql y la imprimimos en pantalla
while($fila=mysql_fetch_array($resultado_consulta_mysql)){
echo «El servicio «.$fila[‘Servicio’].» es ofrecido por la empresa «.$fila[‘Nombre’];
}

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.

Si te resultan complicadas estas extensas consultas mysql, seguramente podría interesarte comenzar a trabajar con el Framework PHP CodeIgniter. CodeIgniter permite hacer consultas mysql, por ejemplo el INNER JOIN, utilizando sentencias más compactas y comprensibles. Espero que este post te sea de utilidad y nos vemos pronto.

Deja una respuesta

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

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies