Ich habe eine Produktteiletabelle wie diese: Teil Teile-ID Teiletyp Produkt-ID -------------------------------------- 1A1 2 B 1 3A2 4 B 2 5A3 6 B 3 Ich möchte eine Abfrage, die eine Tabelle wie diese zurückgibt: Produkt-ID Teil-A-ID Teil-B-ID ---------------------------------------- 1 1 2 2 3 4 3 5 6 In der tatsächlichen Umsetzung wird es Millionen von Produktteilen geben 1 Antworten Leider besitzt MySQL keine PIVOT-Funktion, aber Sie können sie mithilfe von Aggregatfunktionen und einer CASE-Anweisung modellieren. Für eine dynamische Version müssen Sie eine vorbereitete Anweisung verwenden: SET @sql = NULL; WÄHLEN GROUP_CONCAT(DISTINCT KONKAT( 'max(Fall wenn Teiltyp = ''',Teiltyp,''' dann Teil-ID Ende) AS Teil_','_id' ) ) IN @sql AUS Teile; SET @sql = CONCAT('SELECT Produkt-ID,',@sql,' VON Teilen GRUPPE NACH Produkt-ID'); Anweisung VORBEREITEN VON @sql; Anweisung ausführen; DEALLOCATE PREPARE-Anweisung; Wenn Sie nur wenige Spalten haben, können Sie die statische Version verwenden: Wählen Sie product_id,max (Fall wenn part_type ='A' dann part_id Ende) als Part_A_Id,max (Fall wenn part_type ='B' dann part_id Ende) als Part_B_Id aus Teilen Gruppieren nach Produkt-ID Zusammenfassen Das Obige ist der gesamte Inhalt der dynamischen MySQL-Perspektive, der von 123WORDPRESS.COM für Sie zusammengestellt und organisiert wurde. Ich hoffe, dieser Artikel kann Ihnen bei der Lösung der in der dynamischen MySQL-Perspektive auftretenden Programmentwicklungsprobleme helfen. Das könnte Sie auch interessieren:
|
<<: Erläuterung des React+TypeScript-Projektaufbaufalls
>>: So aktualisieren Sie alle Python-Bibliotheken in Ubuntu 18.04 auf einmal
Dieser Artikel veranschaulicht anhand eines Beisp...
Vorwort In vielen MySQL-Test-Szenarien müssen ein...
In tatsächlichen Projekten gibt es Beziehungen zw...
Holen Sie sich das IP-Tool importiere lombok.exte...
Inhaltsverzeichnis Die Rolle von cloneElement Anw...
Routing-Konfigurationsbefehle unter Linux 1. Host...
Eine Transaktion ist eine logische Gruppe von Ope...
Wenn ein Formularfeld in einem Formular deaktivier...
MySQL-Version: MySQL Community Server 5.7.17, ins...
Xrdp ist eine Open-Source-Implementierung des Rem...
Die folgende Abbildung zeigt die Browser-Anzeiger...
Titel XML/HTML-CodeInhalt in die Zwischenablage k...
Einige Monate nachdem ich 2005 in die Branche eing...
Öffnen Sie den Editor für geplante Aufgaben. Cent...
HTML steht für Hypertext Markup Language. Heutzut...