Einfügen mehrerer Zeilen aus Unterabfragen in Tabellen
Wenn Sie versuchen, mehrere Zeilen in eine Tabelle mithilfe einer Unterabfrage einzufügen, die mehr als eine Zeile zurückgibt, Möglicherweise tritt der Fehler 1242 (21000) auf: Unterabfrage gibt mehr als eine Zeile zurück. Dieser Fehler tritt aufgrund der Einschränkung von MySQL auf, mehrere Zeilen mit einer einzigen INSERT-Anweisung einzufügen.
Um dieses Problem zu beheben, verwenden Sie die folgende Technik:
Kombinieren Sie die statischen Zeilendaten, die Sie einfügen möchten die Unterabfrage. Wenn Sie beispielsweise den Namen „Henry“ in eine Spalte mit dem Namen „Namen“ für jede von der Unterabfrage zurückgegebene Zeile einfügen möchten, ändern Sie die Abfrage wie folgt:
INSERT INTO Results (People, names) SELECT d.id, 'Henry' FROM Names f JOIN People d ON d.id = f.id
In dieser geänderten Abfrage ist die statische Der Wert „Henry“ wird mit der Unterabfrage kombiniert. Infolgedessen wird in jeder von der Unterabfrage zurückgegebenen Zeile die Spalte „Namen“ mit dem Wert „Henry“ gefüllt.
Das obige ist der detaillierte Inhalt vonWie füge ich mehrere Zeilen aus Unterabfragen in Tabellen in MySQL ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!