Einfügen mehrerer Zeilen aus einer Unterabfrage in eine MySQL-Tabelle
Um mehrere Zeilen aus einer Unterabfrage in eine MySQL-Tabelle einzufügen, ist es wichtig, dies sicherzustellen dass die Unterabfrage nur eine einzige Zeile zurückgibt. Im bereitgestellten Codeausschnitt versucht die Einfügungsabfrage:
INSERT INTO Results (People, names) VALUES ( (SELECT d.id FROM Names f JOIN People d ON d.id = f.id), ("Henry"), );
, zwei Werte in die Spalten „Personen“ und „Namen“ einzufügen. Die Unterabfrage in der ersten Klammer gibt jedoch mehrere Zeilen für d.id zurück. Dies führt zu dem Fehler „Unterabfrage gibt mehr als 1 Zeile zurück.“
Lösung mit kombinierter statischer Zeichenfolge
Um die statische Zeichenfolge „Henry“ einzufügen und gleichzeitig die Ergebnisse beizubehalten Ä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
Durch die Kombination der statischen Zeichenfolge „Henry“ mit der Unterabfrage mithilfe eines Kommas setzt die Abfrage den Wert für die Namensspalte für jede Zeile explizit auf „Henry“. von der Unterabfrage zurückgegeben. Dadurch wird sichergestellt, dass die Abfrage die Ergebnisse der Unterabfrage zusammen mit dem angegebenen Wert in die Tabelle einfügt, ohne dass der Fehler auftritt.
Das obige ist der detaillierte Inhalt vonWie füge ich mehrere Zeilen aus einer Unterabfrage in eine MySQL-Tabelle ein, wenn die Unterabfrage mehr als eine Zeile zurückgibt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!