Dieser Artikel beschreibt anhand eines Beispiels, wie MySQL Daten abfragen und bedingungenabhängig in eine andere Tabelle aktualisieren kann. Teilen Sie uns die Einzelheiten zu Ihrer Information mit: Die ursprüngliche Datenbank hat 3 Tabellen
Aufgrund der Änderung der Geschäftslogik müssen wir sie jetzt in einer Tabelle zusammenführen und die Zielinformationen im Reisetag in Reiseweg einfügen. Suchen Sie zunächst nach den Zielen aller Routen, gruppieren Sie sie nach der Routen-ID, fügen Sie die Ziele in einer Zeile zusammen und trennen Sie sie durch Kommas. Kopieren Sie den Code wie folgt: SELECT travel_way.id,GROUP_CONCAT(Reisetag.Inhalt) FROM travel_way LEFT JOIN tagrelation on travel_way.id = tagrelation.travel_id LEFT JOIN traveltag ON tagrelation.tag_id = traveltag.id GROUP BY travel_way.id Speichern Sie zunächst die gefundenen Daten in einer neu erstellten Tabelle mid Kopieren Sie den Code wie folgt: INSERT in Mitte (Reiseweg-ID, Ziel) SELECT travel_way.id,GROUP_CONCAT(Reisetag.Inhalt) FROM travel_way LEFT JOIN tagrelation on travel_way.id = tagrelation.travel_id LEFT JOIN traveltag ON tagrelation.tag_id = traveltag.id GROUP BY travel_way.id Aktualisieren Sie dann die Daten der mittleren Tabelle auf travel_way. Da es sich um eine Aktualisierung handelt, können Sie die Anweisung insert into select from nicht verwenden. Kopieren Sie den Code wie folgt: Aktualisiere Reiseweg, Mitte, setze Reiseweg.Ziel = Mitte.Ziel, wobei Reiseweg.ID = Mitte.Reiseweg-ID Die Ziele wurden erfolgreich als kommagetrennte Zeichenfolge in die travel_way-Tabelle importiert. Lassen Sie uns über die verwendeten Methoden sprechen, group_concat
* aus Waren auswählen; +------+------+ |ID| Preis| +------+------+ |1 | 10| |1 | 20| |1 | 20| |2 | 20| |3 | 200 | |3 | 500 | +------+------+ 6 Zeilen im Satz (0,00 Sek.) Gruppieren Sie nach ID und drucken Sie die Werte des Preisfelds in derselben Zeile, durch Kommas getrennt (Standard) Wählen Sie ID, group_concat(Preis) aus der Warengruppe nach ID; +------+--------------------+ | ID| group_concat(Preis) | +------+--------------------+ |1 | 10,20,20| |2 | 20 | |3 | 200.500| +------+--------------------+ 3 Zeilen im Satz (0,00 Sek.) Gruppieren nach ID, drucken Sie das Preisfeld in einer Zeile ohne Duplikate, getrennt durch Kommas Wählen Sie ID, Group_Concat (eindeutiger Preis) aus der Warengruppe nach ID. +------+-----------------------------+ | ID| group_concat (eindeutiger Preis) | +------+-----------------------------+ |1 | 10,20| |2 | 20 | |3 | 200.500 | +------+-----------------------------+ 3 Zeilen im Satz (0,00 Sek.) Gruppieren Sie nach ID, drucken Sie den Wert des Preisfelds in einer Zeile, getrennt durch Kommas und sortiert in absteigender Reihenfolge des Preises Wählen Sie ID, Group_Concat (Preis sortiert nach Preis absteigend) aus der Warengruppe nach ID. +------+-----------------------------------------+ | ID| group_concat(Preis sortiert nach Preis absteigend) | +------+-----------------------------------------+ |1 | 20,20,10 | |2 | 20| |3 | 500.200| +------+-----------------------------------------+ 3 Zeilen im Satz (0,00 Sek.) „insert into select from“ fügt INSERT INTO db1_name(Feld1,Feld2) SELECT Feld1,Feld2 FROM db2_name Das Ziel db2 muss vorhanden sein. Lassen Sie es uns testen. Es gibt zwei Tabellen mit der folgenden Struktur: wähle * aus insert_one; +----+--------+-----+-----+ | ID | Name | Alter | Geschlecht | +----+--------+-----+-----+ | 1 | Tian Xiaosi | 25 | | | 2 | Liu Daniu | 26 | | | 3 | Zheng Dachui | 28 | | | 4 | Hu Ergou | 30 | | +----+--------+-----+-----+ 4 Reihen im Set wähle * aus insert_sex; +----+-----+ | Ich bin | Geschlecht | +----+-----+ | 1 | 1 | | 2 | 2 | | 3 | 1 | | 4 | 2 | +----+-----+ 4 Reihen im Set Suchen Sie nach Geschlechtsdaten aus Tabelle 2 und fügen Sie diese in Tabelle 1 ein. in insert_one(Geschlecht) wähle das Geschlecht aus insert_sex; Abfrage OK, 4 Zeilen betroffen wähle * aus insert_one; +----+--------+-----+-----+ | ID | Name | Alter | Geschlecht | +----+--------+-----+-----+ | 1 | Tian Xiaosi | 25 | | | 2 | Liu Daniu | 26 | | | 3 | Zheng Dachui | 28 | | | 4 | Hu Ergou | 30 | | | 5 | | | 1 | | 6 | | | 2 | | 7 | | | 1 | | 8 | | | 2 | +----+--------+-----+-----+ 8 Reihen im Set Das Ergebnis ist peinlich. Ich möchte das Geschlechtsfeld dieser Tabelle aktualisieren, anstatt neue Daten einzufügen. Dann ist dieser Befehl nur zum Importieren von Daten in eine leere Tabelle anwendbar. Also habe ich im oben genannten tatsächlichen Bedarf eine neue Tabelle erstellt und Update verwendet, um die Daten zu übertragen und zu aktualisieren. Kopieren Sie den Code wie folgt: UPDATE tb1,tb2 SET tb1.address=tb2.address WHERE tb1.name=tb2.name Ersetzen (aktualisieren) Sie die Daten in Tabelle 1 entsprechend den Übereinstimmungsbedingungen durch die Daten in Tabelle 2. Tabelle 1 und Tabelle 2 müssen in Beziehung stehen. Aktualisiere insert_one, insert_sex, setze insert_one.sex = insert_sex.sex, wobei insert_one.id = insert_sex.id; Abfrage OK, 4 Zeilen betroffen wähle * aus insert_one; +----+--------+-----+-----+ | ID | Name | Alter | Geschlecht | +----+--------+-----+-----+ | 1 | Tian Xiaosi | 25 | 1 | | 2 | Liu Daniu | 26 | 2 | | 3 | Zheng Dachui | 28 | 1 | | 4 | Hu Ergou | 30 | 2 | | 5 | | | 1 | | 6 | | | 2 | | 7 | | | 1 | | 8 | | | 2 | +----+--------+-----+-----+ 8 Reihen im Set Die Daten wurden erfolgreich in das Feld „Geschlecht“ der Tabelle „insert_one“ aktualisiert. Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen ansehen: „Zusammenfassung der allgemeinen MySQL-Funktionen“, „Zusammenfassung der Kenntnisse zu MySQL-Protokollvorgängen“, „Zusammenfassung der Kenntnisse zu MySQL-Transaktionsvorgängen“, „Zusammenfassung der Kenntnisse zu gespeicherten MySQL-Prozeduren“ und „Zusammenfassung der Kenntnisse zu MySQL-Datenbanksperren“. Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist. Das könnte Sie auch interessieren:
|
<<: Ein Tutorial zur Installation, Verwendung und automatischen Kompilierung von TypeScript
>>: Tomcat-Sicherheitsspezifikationen (Tomcat-Sicherheitsverstärkung und -spezifikationen)
Schauen Sie sich zuerst den Code an #/bin/sh Datu...
Ich wollte schon immer Kubernetes lernen, weil es...
Inhaltsverzeichnis Die Rolle von cloneElement Anw...
Die Betriebsumgebung dieses Tutorials: Windows 7-...
Die Installation und Bereitstellung eines private...
Verzeichnisstruktur . │ .env │ docker-compose.yml...
Vorwort Es dauerte zwei Tage, um ein Puzzlespiel ...
Inhalt Verwenden Sie Scaffolding, um schnell ein ...
Zunächst müssen wir verstehen, dass GB2312, GBK u...
Inhaltsverzeichnis 1. Optionaler Verkettungsopera...
Um Jenkins auf CentOS 8 zu installieren, müssen S...
Inhaltsverzeichnis 1. Szenariobeschreibung 2. Lös...
Anwendungsszenarien Bei vorhandenen Servern A und...
In diesem Artikel wird der spezifische Code von j...
Inhaltsverzeichnis Vorwort Browser kompilierte Ve...