Heim >Datenbank >MySQL-Tutorial >Wie kann ich in MySQL Zeilen in dynamische Spalten umwandeln?
<code> id | name 1 | 产品A 2 | 产品B</code>Partner Tabelle (Partner):
Umsatz (Verkauf):
<code> id | name 1 | 合作伙伴A 2 | 合作伙伴B</code>
Ziel ist es, die Liniendaten in der Verkaufstabelle in dynamische Spalten umzuwandeln, und der Name repräsentiert verschiedene Produkte. Die erwarteten Ausgangsergebnisse sind wie folgt:
<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>Dynamische Spaltenkonvertierung
<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>Mit dieser Methode können Sie eine beliebige Anzahl von Produktspalten verarbeiten und sicherstellen, dass sich die Abfrage an Änderungen in der Produkttabelle anpassen kann, ohne die SQL -Anweisung selbst zu ändern.
Das obige ist der detaillierte Inhalt vonWie kann ich in MySQL Zeilen in dynamische Spalten umwandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!