Heim >Datenbank >MySQL-Tutorial >Wie kombiniere ich Daten aus drei MySQL-Tabellen in einer neuen Tabelle?
mySQL: Erstellen einer neuen Tabelle aus Daten und Spalten von drei Tabellen
Frage:
Wie kann ich eine neue Tabelle erstellen, die ausgewählte Daten aus drei vorhandenen Tabellen kombiniert, einschließlich der Felder Nachname, Vorname, E-Mail und Alter aus Personen, Details und Taxonomietabellen?
Antwort:
Um dies zu erreichen, können Sie einen 3-Wege-JOIN verwenden.
Erstellen einer neuen Tabelle mit Verknüpfung:
CREATE TABLE new_table AS SELECT p.*, d.content AS age FROM people AS p JOIN details AS d ON d.person_id = p.id JOIN taxonomy AS t ON t.id = d.detail_id WHERE t.taxonomy = 'age';
Diese Abfrage erstellt eine neue Tabelle mit dem Namen new_table, das die Spalten last_name, first_name, email und age enthält. In der Detailtabelle wird das Inhaltsfeld zum Speichern der Altersinformationen verwendet.
Daten in eine vorhandene Tabelle einfügen:
Wenn Sie die neue_Tabelle bereits erstellt haben, können Sie kann mit der folgenden Abfrage Daten darin einfügen:
INSERT INTO new_table (id, last_name, first_name, email, age) SELECT p.id, p.last_name, p.first_name, p.email, d.content AS age FROM people AS p JOIN details AS d ON d.person_id = p.id JOIN taxonomy AS t ON t.id = d.detail_id WHERE t.taxonomy = 'age';
Joining for Multiple Attribute:
Um mehrere Attribute (z. B. Alter, Geschlecht, Größe) aus den anderen Tabellen abzurufen, müssen Sie zusätzliche Verknüpfungen durchführen:
CREATE TABLE new_table AS SELECT p.*, d1.content AS age, d2.content AS gender, d3.content AS height FROM people AS p JOIN details AS d1 ON d1.person_id = p.id AND d1.taxonomy_id = (SELECT id FROM taxonomy WHERE taxonomy = 'age') JOIN details AS d2 ON d2.person_id = p.id AND d2.taxonomy_id = (SELECT id FROM taxonomy WHERE taxonomy = 'gender') JOIN details AS d3 ON d3.person_id = p.id AND d3.taxonomy_id = (SELECT id FROM taxonomy WHERE taxonomy = 'height');
Das obige ist der detaillierte Inhalt vonWie kombiniere ich Daten aus drei MySQL-Tabellen in einer neuen Tabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!