Comment joindre les résultats de sélection avec une autre table?
Exemple: générer une table à 2 colonnes de la valeur globale de chaque type de produit
product_type | total | description --------------------------------- 1 | 589 | stationary 2 | 234 | closing
Une autre table nommée table2 contient des descriptions textuelles des types de produits
product_type | description | more columns --------------------------------------- 1 | .................... 2 | ....................
Comment joindre la colonne description
aux résultats de sélection ci-dessus afin que le tableau résultant ressemble à quelque chose comme ça?
SELECT product_type, SUM(value) AS total from table1 WHERE something_something_is_true GROUP BY product_type;
3 Réponses :
Utilisez votre requête comme une table dérivée, puis joignez-y votre table de description.
select t1.*, t2.description from ( SELECT product_type, SUM(value) AS total from table1 WHERE ... GROUP BY product_type ) t1 join table2 t2 on t1.product_type = t2.product_type
Vous pouvez utiliser une sous-requête comme expression de table:
SELECT t1.product_type, total, description FROM (SELECT product_type, SUM(value) AS total FROM table1 WHERE something_something_is_true GROUP BY product_type) t1 JOIN table2 t2 ON t1.product_type = t1.product_type
Vous pouvez simplement faire:
SELECT t1.product_type, SUM(value) AS total, MAX(t2.description) FROM table1 t1 LEFT JOIN table2 t2 ON t2.product_type = t1.product_type WHERE something_something_is_true GROUP BY t1.product_type;
@quantum_well. . . Si vous n'utilisez pas max ()
, la requête aura une erreur de syntaxe.
sqlfiddle.com/#!9/949e9e/5 essayez ceci.