Maison >base de données >tutoriel mysql >Comment pivoter les lignes en colonnes dynamiques dans MySQL?
mysql: convertissez les données de ligne en colonne dynamique
<code> id | name 1 | 产品A 2 | 产品B</code>Tableau des partenaires (partenaires):
Ventes (ventes):
<code> id | name 1 | 合作伙伴A 2 | 合作伙伴B</code>
L'objectif est de convertir les données de ligne dans le tableau de vente en colonnes dynamiques, et le nom représente différents produits. Les résultats de sortie attendus sont les suivants:
<code> partners_id | products_id 1 2 2 5 1 5 1 3 1 4 1 5 2 2 2 4 2 3 1 1</code>
<code>partner_name | 产品A | 产品B | 产品C | 产品D | 产品E 合作伙伴A 1 1 1 1 2 合作伙伴B 0 1 1 1 1</code>Conversion de colonne dynamique
<code class="language-sql">SELECT pt.partner_name, COUNT(CASE WHEN pd.product_name = '产品A' THEN 1 END) AS 产品A, COUNT(CASE WHEN pd.product_name = '产品B' THEN 1 END) AS 产品B, COUNT(CASE WHEN pd.product_name = '产品C' THEN 1 END) AS 产品C, COUNT(CASE WHEN pd.product_name = '产品D' THEN 1 END) AS 产品D, COUNT(CASE WHEN pd.product_name = '产品E' THEN 1 END) AS 产品E FROM partners pt LEFT JOIN sales s ON pt.part_id = s.partner_id LEFT JOIN products pd ON s.product_id = pd.prod_id GROUP BY pt.partner_name</code>Cette méthode permet de gérer n'importe quel nombre de colonnes de produit et de s'assurer que la requête peut s'adapter aux modifications de la table de produit sans modifier l'instruction SQL elle-même.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!