Ejemplo Uniendo varias tablas con inner join mysql



En Ejemplo le daremos un uso mas a fondo a inner join uniendo lo que son un total de 4 tablas, dentro de la cuales utilizaremos:
-CONCAT para unir nombre y apellido.
-FORMAT para darle formarto de moneda al precio
-inner  join para especificar la union de las tablas
-Calculando el valor con el total del precio * las unidades existentes para calcular el total por unidad
a la vez sumando el valor con el total del precio * las unidades existentes dentro del rango de fechas establecidos, para calcular el total del día.

Por ultimo mostrare otro ejemplo mas simple buscando todos los empleados que esten dentro de x departamento.

aquí el código:

#creando base de datos
create database if not exists mitiendaonline;

#usando base
use mi tiendaonline;

CREATE TABLE clientes{
id_cliente int unsigned not null primary key autoincrement,
nombre varchar(15) not null,
apellido varchar(12) not null,
ciudad varchar(25) not null,
departamento varchar(25) not null,
edad tinyint unsigned not null,
cedula int unsigned not null,
telefono tinyint unsigned not null,


};

create table pedidos(
id_pedido int unsigned not null primary key auto_increment,
id_cliente int unsigned not null,
    fecha_pedido varchar(15) not null,
    metodo_pago varchar(15) not null
);

insert into cliente values
                           (null,'nombre','apellido','ciudad','departamento',0000000000000,78,32477582),
                           (null,'Nelly','Paz','LCB','Atlantida',1111111111,18,92432580),
                           (null,'Nicolla','S.','SPS','Cortes',0501200247820,15,95050280),
                           (null,'Cheldon','Ordoñez','PTL','GRD',123456789,25,96067640);
 insert into pedidos values
                            (null,1,'22/01/2017','Tarjeta de credito'),
                            (null,4,'16/03/2017','Tarjeta de debito'),
                            (null,2,'13/04/2017','Tarjeta de credito'),
                            (null,3,'20/05/2017','Deposito'),
                            (null,3,'11/06/2017','Deposito'),
                            (null,1,'23/06/2017','Tarjeta de debito'),
                            (null,2,'28/04/2017','Tarjeta de credito'),
                            (null,4,'26/03/2017','Deposito'),
                            (null,4,'22/01/2017','Tarjeta de credito'),
                            (null,3,'24/05/2017','Tarjeta de debito');

create table productos (
id_producto varchar(10) not null primary key,
nombre_producto varchar(10) not null,
unidades in tunsigned not null
);

create table productos_pedidos(
id_pedido int unsigned not null primary key auto_increment,
id_producto varchar(10) not null,
unidades int unsigned not null );

insert into productos
        values
        ("P01",'Silla',35000),
        ("P02",'DS',58000),
        ("P03",'3DS',75000),
        ("P04",'Mesa',50000),
        ("P05",'USB',8000);
       

insert into productos_pedidos
        values
        (null,"P01",5),
        (null,"P03",10),
        (null,"P04",4),
        (null,"P02",2),
        (null,"P01",2),
        (null,"P02",1),
        (null,"P04",4),
        (null,"P05",3);
       
   #select uniendo cuatro tablas    
select c.id_cliente,
       CONCAT(nombre, " ",apellido ) as nombre_completo,
       p.id_pedido,
       fecha_pedido,
       metodo_pago,
       pro.id_producto,
       nombre_producto,
       FORMAT(precio,2) as precio,
       unidades,
       FORMAT(precio*unidades,2) AS total,
       FORMAT(SUM(precio*unidades),2) as total_dia
from clientes as c
inner join pedidos as p
 on c.id_cliente = p.id_cliente
inner join productos_pedidos as proped
 on p.id_pedido = proped.id_pedido
inner join productos as pro
 on proped.id_producto = pro.id_producto;
where c.id_cliente=1 and fecha_pedido='16/03/2017';


select * from empleados as E
inner join departamento as D
   on E.iddep = D.id
            where D.nombre like '%Inf%'

MYSQL

Mas info sugiero: w3schools

Comentarios

Populares

Buscar en este blog