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 zeichnet das ausführliche Tutorial...
1. Was ist Master-Slave-Replikation? Die DDL- und...
Viele Webseiten haben kleine Dreiecke in ihren Na...
Heute werde ich mit Ihnen über das Löschen von Fl...
Methode 1: Verwenden Sie den Befehl SET PASSWORD ...
1. Notwendigkeit des Tunings Ich habe mich immer ...
1: Definieren Sie eine gespeicherte Prozedur zum ...
Standalone-HBase, lassen Sie uns zuerst darüber s...
Teil.0 Hintergrund Die Intranetserver des Unterne...
Inhaltsverzeichnis 1. Installieren Sie das psutil...
1. Einleitung table_cache ist ein sehr wichtiger ...
Datenblatt /* Navicat SQLite-Datenübertragung Que...
MySQL ist eine relativ einfach zu verwendende rel...
Der einfache Rechner des WeChat-Applets dient Ihn...
<br />Beim Textdesign konzentrieren wir uns ...