Einfügen mehrerer Zeilen mit einer Unterabfrage in MySQL
Sie suchen nach einer Lösung, um eine Tabelle mit mehreren Zeilen zu füllen, die von einer Unterabfrage zurückgegeben werden. Die von Ihnen bereitgestellte Beispielabfrage versucht, dies mithilfe einer verschachtelten VALUES-Klausel zu erreichen, führt jedoch zu einem Fehler, da die Unterabfrage mehr als eine Zeile zurückgibt.
Beheben des Fehlers
Um dieses Problem zu lösen, müssen Sie die Verschachtelung der Unterabfrage innerhalb der VALUES-Klausel vermeiden. Kombinieren Sie stattdessen die Unterabfrage mit einem statischen Wert für den Namen, indem Sie den folgenden Ansatz verwenden:
INSERT INTO Results (People, names) SELECT d.id, 'Henry' FROM Names f JOIN People d ON d.id = f.id
Diese Abfrage gibt mehrere Zeilen mit der ID aus der Unterabfrage kombiniert mit der statischen Zeichenfolge „Henry“ für die Namensspalte zurück .
Erklärung
Durch die Kombination der Unterabfrage und des statischen Werts in der SELECT-Klausel erstellen Sie effektiv eine einzelne Zeile für jede von der Unterabfrage zurückgegebene Zeile. Dadurch kann die INSERT-Anweisung diese Zeilen erfolgreich zur Ergebnistabelle hinzufügen.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe einer Unterabfrage in MySQL mehrere Zeilen in eine Tabelle einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!