single
Unir 2 Tablas
Desliza para mostrar el menú
Has captado la atención de una empresa que posee una pequeña tienda en línea. Tienen 2 tablas que están relacionadas entre sí. La primera tabla contiene información sobre los productos vendidos en la tienda en línea.
Así es como se ve la tabla product:
La segunda tabla contiene las categorías de productos en el sitio web, junto con una breve descripción para cada categoría.
Así es como se ve la tabla category:
La primera tarea es unir estas dos tablas para averiguar cuántos productos hay en cada categoría. Se utilizará una sentencia JOIN para lograrlo.
Antes de comenzar con la tarea, es importante entender qué es una sentencia JOIN y cómo funciona.
JOIN en SQL es una operación que combina filas de dos o más tablas basándose en una columna relacionada entre ellas. JOIN permite obtener datos de varias tablas en una sola consulta, lo que simplifica el análisis y procesamiento de datos relacionados.
Para unir dos tablas, deben compartir una columna en común. Para las tablas, este vínculo compartido es product.category_id y category.id.
Al escribir columnas de estas tablas, comienza con el nombre de la tabla, agrega un punto y luego el nombre de la columna. Esto ayuda a mantener el código claro, especialmente cuando las tablas tienen columnas con el mismo nombre. Indica a SQL exactamente a qué tabla y columna te refieres.
Así es como funciona JOIN en la práctica. Imagina que queremos obtener el precio promedio de los productos para cada nombre de categoría.
La consulta para lograr esto se ve así:
1234SELECT category.name, AVG(product.price) AS average_price FROM product JOIN category ON product.category_id = category.id GROUP BY category.name
A continuación se muestra un desglose de cómo se utilizó JOIN en la consulta:
- En la parte
SELECT, se enumeran las columnas deseadas de ambas tablas, asegurándose de incluir el nombre de la tabla para mayor claridad; - En la parte
JOIN, se especifica la tabla a unir (category) y las columnas comunes que las vinculan (product.category_id = category.id); - Luego, se agrupan los datos por
category.namepara calcular el precio promedio utilizando la funciónAVG().
Si esto parece complejo, aquí tienes una sintaxis simple para usar JOIN:
SELECT table1.column, table2.column
FROM table1
JOIN table2 ON table1.common_column = table2.common_column
A diferencia de la cláusula UNION, la sentencia JOIN permite combinar tablas completas, no solo las columnas que comparten. Ten en cuenta que UNION no requiere subconsultas de forma inherente; las subconsultas solo son necesarias si se desea filtrar o agrupar el conjunto de resultados combinado. En muchos casos, se puede utilizar UNION directamente entre dos sentencias SELECT sin subconsultas.
Desliza para comenzar a programar
Necesitas unir las dos tablas: category y product. Las columnas comunes para estas dos tablas son product.category_id y category.id.
Tu tarea es encontrar la cantidad total de productos en cada categoría. Para ello, debes calcular la suma de la columna product.amount.
Utiliza el alias total_amount para esta columna.
Al final de tu consulta, ordena el resultado por la columna total_amount en orden ascendente.
En la respuesta, debes tener 2 columnas: category.name y total.amount.
Instrucciones breves
- Recuperar la columna
category.namey la suma de la columnaproduct.amountde la tablaproduct. - Asignar el alias
total_amounta la segunda columna. - Unir la tabla
categoryutilizando una sentenciaJOIN. - Relacionar las tablas por la columna común
product.category_id = category.id. - Agrupar los resultados por
category.name. - Ordenar los resultados por
total_amount.
Solución
¡Gracias por tus comentarios!
single
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla