al hacer el inner join ,left join ,etc, entre la tabla_vendedores y tabla_clientes . No es necesario hacer la relacion tambien con la tabla intermedia "facturas"? .En el video veo que se hace las relaciones directo ,sin pasar por la tabla intermedia
al hacer el inner join ,left join ,etc, entre la tabla_vendedores y tabla_clientes . No es necesario hacer la relacion tambien con la tabla intermedia "facturas"? .En el video veo que se hace las relaciones directo ,sin pasar por la tabla intermedia
Hola Horlando, espero estea bien
Gracias por tu pregunta sobre las consultas SQL y las tablas intermedias. En el video que mencionas, se muestra cómo hacer un INNER JOIN entre las tablas de vendedores y clientes sin necesidad de pasar por la tabla intermedia "facturas". Esto es posible siempre y cuando las tablas de vendedores y clientes tengan una columna en común que se pueda utilizar para hacer la relación, como el barrio en este caso.
En el ejemplo del video, se utiliza el barrio como columna en común para hacer el INNER JOIN entre las tablas de vendedores y clientes. Esto permite obtener la información de qué clientes son atendidos por qué vendedores en qué barrio.
Sin embargo, es importante tener en cuenta que en otros casos puede ser necesario utilizar la tabla intermedia "facturas" para hacer la relación entre las tablas de vendedores y clientes. Esto dependerá de la estructura de la base de datos y de las relaciones establecidas entre las tablas.
Espero que esta explicación te haya sido útil. Si tienes alguna otra pregunta, no dudes en hacerla.
Espero haber ayudado y buenos estudios!
Hola Horlando
Como bien lo explica Ingrid, siempre que dos tablas (tabla_de_clientes
y tabla_de_vendedores
) tengan un campo común (BARRIO
) puedes hacer el INNER JOIN
entre ambas, tal como lo desarrolla el profesor Álvaro en el video.
Sin embargo, un ejemplo de cómo utilizar también la tabla facturas
podría ser si deseamos conocer qué clientes fueron atendidos por cuáles vendedores, esto lo podríamos conocer utilizando la tabla facturas
que tiene los campos DNI
(del cliente) y MATRICULA
(del vendedor). La consulta podría ser como sigue:
SELECT DISTINCT TC.DNI DNI_Cliente, TC.NOMBRE Nombre_Cliente, TV.MATRICULA Matricula_Vendedor, TV.NOMBRE Nombre_Vendedor
FROM tabla_de_clientes TC
INNER JOIN (facturas F, tabla_de_vendedores TV)
ON (F.DNI = TC.DNI OR F.MATRICULA = TV.MATRICULA)
ORDER BY TC.DNI ASC, TV.MATRICULA ASC;
Donde se realiza en simultánea un INNER JOIN
entre tabla_de_clientes
y facturas
, luego facturas
y tabla_de_vendedores
, entonces realiza las comparaciones entres los campos comunes (para tabla_de_clientes
y facturas
el campo común es DNI
y para facturas
y tabla_de_vendedores
el campo común es MATRICULA
).
El resultado sería similar al siguiente:
Se puede observar que la consulta nos devuelve 57 registros y no 60 (15 clientes x 4 vendedores) dado que 12 clientes fueron atendidos por los 4 vendedores y 3 clientes fueron atendidos por solo 3 vendedores.
Espero que este pequeño ejemplo te sea útil para aclarar algunas dudas.
Saludos desde Lima, Perú, y ¡a seguir estudiando!