Beruflich Dokumente
Kultur Dokumente
Ejemplos demostrativos
a)
1. select *
2. from pedidos inner join clientes on
pedidos.id_cliente=clientes.id_cliente
3. inner join clientes_sr on pedidos.id_cliente=clientes_sr.id_cliente
4. where realizado='1'
5. group by pedidos.id_pedido
6. order by fecha, hora;
b)
1. (SELECT *
2. FROM pedidos P1 INNER JOIN clientes C
3. ON P1.id_cliente = C.id_cliente
4. WHERE realizado = '1'
5. GROUP BY P1.id_pedido)
6.
7. UNION
8.
9. (SELECT *
10. FROM pedidos P2 INNER JOIN clientes_sr CS
11. ON P2.id_cliente = CS.id_cliente
12. WHERE realizado = '1'
13. GROUP BY P2.id_pedido)
14. ORDER BY fecha, hora;
Por ejemplo:
SELECT *
FROM (pedidos INNER JOIN clientes ON pedidos.clie = clientes.numclie) INNER JOIN
empleados ON pedidos.rep = empleados.numemp
En vez de tabla1 hemos escrito un INNER JOIN completo, tambin podemos escribir:
SELECT *
FROM clientes INNER JOIN (pedidos INNER JOIN empleados ON pedidos.rep =
empleados.numemp) ON pedidos.clie = clientes.numclie
Consejo importante :
El uso de * en el SELECT es muy practico a la hora de desarrollar una consulta, pero
es fatal para el rendimiento de esta cuando esta en produccin, por varios factores,
entre ellos que el resultado que arroja la consulta es mucho mas grande de lo que
realmente se necesita y que al no saber el nombre de los campos que usara, el motor
(mysql en mi caso) debe previamente consultar el nombre de todos los campos de la
tabla, en tablas grandes con mas de 60 campos esto es fatal, muy fatal
Primero vamos a ver quien tiene acceso a que bodega con el uso de INNER
JOIN
Cdigo :
SELECT
u.us_nombre usuario,
b.bod_nombre bodega
FROM us2bod ub
Ahora vamos a ver a los usuarios que NO tienen bodegas asociadas, para lo
cual preguntaremos que usuarios no se pudo asociar a alguna bodega
Cdigo :
SELECT
u.us_nombre usuario
FROM usuarios u