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)
Vorwort: Ich bin auf die Anforderung gestoßen, be...
Inhaltsverzeichnis 1. Hash-Tabellenprinzip 2. Das...
Kürzlich habe ich festgestellt, dass nach der Ver...
Manchmal möchten wir nicht, dass der Inhalt unser...
Vorwort Der Blogger verwendet die Idea IDE. Da di...
LocalStorage speichert Boolesche Werte Als ich he...
Ja, CSS hat auch reguläre Ausdrücke (Amen) Zwei l...
In diesem Artikelbeispiel wird der spezifische Co...
Vorwort Manchmal stößt man auf Geschäftstabellen,...
Inhaltsverzeichnis 1. Grundlagen 2. Knoten, Bäume...
Technische Struktur Das Projekt ist in zwei Teile...
In Linux-Systemen, insbesondere Serversystemen, i...
Dieser Artikel dokumentiert die Installation und ...
Jiedaibao ist eine Softwareplattform für Handykre...
Inhaltsverzeichnis 1. Laden Sie die MySQL-MSI-Ver...