Auflösen mehrdeutiger Spaltenverweise beim Verbinden von Tabellen mit identischen Strukturen
Im Bereich der Datenbankverwaltung kommt es nicht selten vor, dass mehrere Tabellen vorhanden sind haben die gleiche Datenstruktur, unterscheiden sich jedoch in ihrem Inhalt. Wenn Sie mit solchen Tabellen arbeiten und versuchen, Daten basierend auf einer bestimmten Spalte abzurufen, kann es zu einem Fehler „mehrdeutige Spalte“ kommen, wie in dem in der angegebenen Abfrage beschriebenen Fall.
Die größte Herausforderung entsteht, wenn Sie dies versuchen Verbinden Sie diese Tabellen mithilfe einer gemeinsamen Spalte wie „Genre“, ohne den Tabellennamen in der WHERE-Klausel anzugeben. Da beide Tabellen eine Spalte mit dem Namen „Genre“ enthalten, kann MySQL nicht identifizieren, welche Tabellenspalte zum Vergleich verwendet werden soll.
Die Lösung liegt in der Verwendung des UNION-Operators, der die Ergebnismengen von zwei oder mehr SELECT-Anweisungen zu einer kombiniert einzelne Ergebnismenge. Indem Sie jede SELECT-Anweisung in Klammern setzen und UNION verwenden, können Sie die Datensätze aus jeder Tabelle zusammenführen, die die Bedingung „genre“ = „punk“ erfüllen.
Die resultierende Abfrage würde so aussehen:
(SELECT * FROM us_music WHERE `genre` = 'punk') UNION (SELECT * FROM de_music WHERE `genre` = 'punk')
Dieser Ansatz ermöglicht es Ihnen, selektiv Daten aus mehreren Tabellen mit derselben Struktur abzurufen und dabei den Tabellennamen in der WHERE-Klausel anzugeben, die Mehrdeutigkeit aufzulösen und das Gewünschte zu ermöglichen Sortierung basierend auf der Spalte „Genre“.
Das obige ist der detaillierte Inhalt vonWie behebe ich „Mehrdeutige Spalten'-Fehler beim Verknüpfen von Tabellen mit identischen Strukturen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!