Heim >Datenbank >MySQL-Tutorial >Wie kombiniere ich Daten aus drei MySQL-Tabellen in einer neuen Tabelle?

Wie kombiniere ich Daten aus drei MySQL-Tabellen in einer neuen Tabelle?

Susan Sarandon
Susan SarandonOriginal
2024-11-23 02:03:17932Durchsuche

How to Combine Data from Three MySQL Tables into a New Table?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn