22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP
MYSQL La base de datos PHP Ejemplos
Unir dos tablas y buscar con PHP &
MySQL
Nestor Tapia Last Updated: 1 junio, 2018 6 1.684 4 minutos de lectura
5 / 5 ( 3 votos )
Unir dos tablas y buscar con PHP & MySQL. En esta ocasión nos enfocaremos
en realizar búsquedas en dos tablas unidas por la sentencia INNER JOIN por
defecto, y consiste en combinar y/o unificar cada fila de una tabla1 con cada
fila de la otra tabla2, filtrando las filas que cumplan una determinada condición
en común.
Por lo tanto, si deseamos realizar consultas en dos tablas es recomendable la
utilización de la sentencias JOIN.
¿Que hay dentro?
1 Unir dos tablas y buscar con PHP & MySQL
1.1 Ejemplo 01: Relacionar tablas con Inner Join
1.2 2. Ejemplo 2: Buscador PHP y MYSQL usando INNER JOIN y clausula
WHERE
1.2.1 Estructura del buscador INNER JOIN completo.
1.2.1.1 La Tabla Cursos
1.2.1.2 Tabla Pagos
1.2.1.3 Fichero conexion.php
1.2.1.4 Index.php
1.3 CONCLUSIÓN
1.4 DESCARGA
Unir dos tablas y buscar con PHP & MySQL
Sin embargo. Podemos utilizar la cláusula “WHERE” para usar el operador
“LIKE”a entregar
Las cookies nos ayudan y poder nuestros
realizar servicios.
búsquedas precisas
Al utilizar dentro
nuestros de lasacepta
servicios, dos tablas deuso
nuestro acuerdo
de cookies. Leer
a una columna declarado enMás
la cláusula WHERE.
Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 1/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP
Hagamos una breve explicación en el cual usaremos dos tablas una llamada
“ALUMNOS” y la otra tabla llamada “CURSOS” aplicaremos una consulta en
el cual explicaremos a continuación.
1. Ejemplo 01: Relacionar tablas con Inner Join
A) Tabla “Alumnos”, con la clave primaria “cod”
Tabla alumnos inner join
b) Tabla “Cursos”, con la clave primaria “id_curso”
Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 2/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP
Aplicamos la consulta con la sentencia INNER JOIN
SELECT nombres, ape_paterno, ape_materno FROM alumnos
INNER JOIN cursos
WHERE alumnos.id_curso = cursos.id_curso
Resultado Final después de realizar la consulta SQL. Si observamos veremos
una tabla combinada donde hay columnas de las dos tablas relacionadas, tanto
de la tabla “alumnos” como de la tabla “cursos”. Esta unificación es posible
gracias a la sentencia INNER JOIN.
Por lo tanto. Esta presentación hace que la información sea más relevante a la
hora de tomar decisiones dentro de una organización.
Resultado consulta inner join
2. Ejemplo 2: Buscador PHP y MYSQL usando
INNER JOIN y clausula WHERE
Esta es la consulta que usaremos para este ejemplo, un poco grande pero
funcional para este ejemplo de buscador INEER JOIN.
Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 3/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP
$sqln=mysqli_query($conn, "SELECT t1.id_pago, t1.monto, t
t1 INNER JOIN curso t2 ON t1.id_curso=t2.id_curso
WHERE t2.nombre_curso LIKE '%$pbu%' order by t1.id_pago d
or die(mysqli_error());
Estructura del buscador INNER JOIN completo.
Base de datos y sus Tablas
Trabajaremos en una base de datos llamada “php_union” en la cual contendrá
2 tablas, Una llamada “cursos” y otra llamada “pagos”.
CREATE TABLE `curso` (
`id_curso` int(2) NOT NULL,
`codcur` varchar(20) DEFAULT NULL,
`nombre_curso` varchar(255) CHARACTER SET utf8 COLLATE
`duracion` varchar(120) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
--
-- Volcado de datos para la tabla `curso`
--
INSERT INTO `curso` (`id_curso`, `codcur`, `nombre_curso`
(1, '0001WORD', 'WORD', '3 SEMANAS'),
(2, '0002EXCEL', 'EXCEL', '3 SEMANAS'),
(3, '0003POWER', 'POWER POINT', '3 SEMANAS'),
(4, '0004PUBLI', 'PUBLISER', '3 SEMANAS'),
(5, '0005INTER', 'INTERNET', '2 SEMANAS'),
(6, '0006ACCE', 'ACCESS', '4 SEMANAS');
-- ------------------------------------------------------
CREATE TABLE `pagos` (
`id_pago` int(3) NOT NULL,
Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
`id_curso` int(11) DEFAULT NULL,
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 4/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP
`monto` decimal(7,2) DEFAULT NULL,
`fecha` date DEFAULT NULL,
`cantidad` int(2) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
--
-- Volcado de datos para la tabla `pagos`
--
INSERT INTO `pagos` (`id_pago`, `id_curso`, `monto`, `fec
(1, 1, '20.00', '2018-05-30', 1),
(2, 1, '30.00', '2018-05-31', 1),
(3, 2, '40.00', '2018-05-31', 1),
(4, 2, '100.00', '2018-05-31', 1),
(5, 3, '25.00', '2018-05-30', 1),
(6, 3, '50.00', '2018-05-31', 1),
(7, 4, '60.00', '2018-05-31', 1),
(8, 4, '80.00', '2018-05-31', 1),
(9, 5, '27.00', '2018-05-30', 1),
(10, 5, '49.00', '2018-05-31', 1),
(11, 6, '90.00', '2018-05-31', 1),
(12, 6, '90.00', '2018-05-31', 1);
--
-- Índices para tablas volcadas
--
--
-- Indices de la tabla `curso`
--
ALTER TABLE `curso`
ADD PRIMARY KEY (`id_curso`);
--
-- Indices de la tabla `pagos`
--
ALTER TABLE `pagos`
ADD PRIMARY KEY (`id_pago`);
Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 5/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP
--
-- AUTO_INCREMENT de las tablas volcadas
--
--
-- AUTO_INCREMENT de la tabla `curso`
--
ALTER TABLE `curso`
MODIFY `id_curso` int(2) NOT NULL AUTO_INCREMENT, AUTO_
--
-- AUTO_INCREMENT de la tabla `pagos`
--
ALTER TABLE `pagos`
MODIFY `id_pago` int(3) NOT NULL AUTO_INCREMENT, AUTO_I
La Tabla Cursos
Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 6/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP
Tabla Pagos
Fichero conexion.php
Este será encargado de realizar la conexión con el servidor
<?php
$servidor= "localhost";
$usuario= "root";
$password = "";
$nombreBD= "php_union";
?>
Index.php
Aquí se mostrara el formulario para realizar la búsqueda y también mostrara
resultados de la base de datos MySQL
Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 7/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP
<ul class="list-group">
<li class="list-group-item">
<form method="GET">
<div class="form-row align-items-center">
<div class="col-auto">
<label class="sr-only" for="inlineFormInput">Curso<
<input name="curso" type="text" class="form-control
<input name="buscar" type="hidden" class="form-cont
</div>
<div class="col-auto">
<button type="submit" class="btn btn-primary mb-2">
</div>
</div>
</form>
</li>
</ul>
El código PHP encargado de procesar la palabra clave enviada a través del
formulario
<?php
include('conexion.php');
$conn = new mysqli($servidor, $usuario, $password, $nombr
if ($conn->connect_error) {
die("la conexión ha fallado: " . $conn->connect_error
}
if(isset($_GET["curso"])){
$pbu=$_GET["curso"];
}
if(isset($_GET["buscar"])){
$sqln=mysqli_query($conn, "SELECT t1.id_pago, t1.monto, t
Las cookies nos ayudan} a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 8/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP
?>
<table class="table">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Curso</th>
<th scope="col">Monto</th>
<th scope="col">Cantidad</th>
<th scope="col">Fecha</th>
</tr>
</thead>
<?php
if(isset($_GET["buscar"])){
$n=0;
while ($dato=mysqli_fetch_array($sqln))
{ $n++;
echo"<tbody>";
echo"<tr>";
echo"<th scope='row'>".$n."</th>";
echo"<td>".$dato['nombre_curso']."</td>";
echo"<td>".$dato['monto']."</td>";
echo"<td>".$dato['cantidad']."</td>";
echo"<td>".$dato['fecha']."</td>";
echo"</tr>";
echo" </tbody>";
}
}
?>
</table>
Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 9/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP
Unir dos tablas y buscar con PHP & MySQL
CONCLUSIÓN
Hoy en día casi todo la información de una empresa y/o organización se
almacenan en una base de datos. Sin embargo, se puede utilizar varios
gestores de almacenamiento.
En este ejemplo estamos usando MySQL y lo que deseamos es optimizar los
resultados a través de una consulta SQL. Por lo tanto, estamos usando la
sentencia INNER JOIN para poder unir dos tablas y realizar una búsqueda
precisa.
Les dejare el ejemplo completo para que puedan descargar esta pequeña
muestra y que ustedes pueden modificar de acuerdo a sus necesidades.
Esta forma de realizar consultas es muy usada en la mayoría de programadores
Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
para lograr un trabajo eficiente.
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 10/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP
DESCARGA
DESCARGAR CÓDIGO FUENTE
Descarga 156 Sistemas PHP & MySQL
Descargar 156 Sistemas PHP & MySQL Completos:
$9.99 – Comprar
#Buscador Inner Join #Busqueda INNER JOIN
#Inner Join #inner join php
6 comentarios
Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 11/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP
Mauricio Sosa
8 octubre, 2020 a las 1:20 pm
Buenos días Nestor. Antes que nada muchas gracias por compartir tus
conocimientos con los que estamos aprendiendo. Siempre construyen un
poquito más, para esclarecer dudas y nuevo conocimiento.
Quería hacerte una consulta.
Tengo un problema para mostrar los datos de dos tablas. Una tabla es de
categorías (category) y otra es de publicaciones (post).
En la misma página debo mostrar primero unos botones que muestran
cada categoría (y que el usuario puede editar con un CRUD) por lo tanto
aparecen de acuerdo a la creación del usuario (crea la categoría y aparece
el botón) y tendría que traer de allí el nombre de la categoría creada.
Y segundo, en la misma página inmediatamente abajo, por un id deben
aparecer los posts de cada categoría de acuerdo al #id de cada botón.
Esos post tienen información de otra tabla que los relaciona también por
categoría.
Problema: Puedo mostrar las categorías en los botones a través de una
función, pero al implementar la segunda función que trae los valores de la
segunda tabla todo desaparece. Las funciones individualmente traen y
muestran los datos correctamente. Pero no si las aplico en la misma
página.
Sabes si se puede implementar alguna función para esto?
Muchas gracias de antemano!
Saludos Cordiales desde España
Mauricio Sosa
Responder
Augusto V.
26 agosto, 2020 a las 3:34 am
Cordial saludo
Para qué usa el cuatro de texto oculto y el calor “v”?
Lo quité y veo que hace lo mismo.
Gracias
Responder
Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 12/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP
Luis Peña
23 agosto, 2020 a las 10:39 pm
Estimado Nestor:
Veo que eres excelente programador y, te felicito por la buena intensión
de colgar en tu sitio estos excelentes tutoriales. Tengo la siguiente
inquietud:
Tengo una pequeña base de datos para una biblioteca personal,
compuesta por una tabla principal y 4 tablas simples relacionadas con la
primera, osea, un sistema relacional. Pero, por mi desconocimiento, no se
como hacer el formulario de captura, con opciones de Select, para integrar
los de las otras tablas secundarias en la tabla principal. Dentro de Mysql sí
se puede ver y entrar datos con dichas relaciones. Pero me falta saber
como realizar el formulario de carga y el que recibe, osea, el de inserción,
en pocas palabras el CRUD.
Le paso el link de la base datos:
https://drive.google.com/file/d/1lkhtLWLbEYtHoFY5ZAAFML5kQWZCVBAw
/view?usp=sharing
Responder
Nestor Tapia
26 agosto, 2020 a las 5:53 am
Hola Luis
Ya vi las tablas y he visto que estan relacionadas.
Ahora, si deseas integrar las tablas secundarias a la principal a travez de
un select o varios select
Aquí te dejo un articulo de como recuperar datos de una tabla
dependiente a un select
https://www.baulphp.com/llenar-select-html-con-mysql-php-ejemplos/
De ese select solo debes de guardar la id de la tabla secundaria y
almacenarlo en la tabla principal llamada documentos.
Espero que esto te ayude, caso contrario puedes hacer mas consultas.
Responder
Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 13/14
22/12/2020 Unir dos tablas y buscar con PHP & MySQL » BaulPHP
ricardo
24 enero, 2020 a las 10:26 pm
amigo en donde haces la consulta para buscar la informacion en la base
de datos
t1 y t2 a que hacen referencia, es que ya trate de agregar mis valores de
mi tabla y me marca error precisamente en esa lina donde empieza la
consulta sql
Responder
Nestor Tapia
25 enero, 2020 a las 12:06 am
Hola ricardo,
t1 y t2 son alias que se le asignan a las tablas con el fin de minimizar las
consultas por ejemplo:
La tabla Pago se llamara o hace referencia a t1
La tabla curso se llamara o hace referencia a t2
Y esos nombres se llaman en la consulta para usar el inner Join
Espero haber despejado tus dudas.
Responder
Las cookies nos ayudan a entregar nuestros servicios. Al utilizar nuestros servicios, acepta nuestro uso de cookies. Leer
Más Entendido
https://www.baulphp.com/unir-dos-tablas-y-buscar-con-php-mysql/ 14/14