Heim >Datenbank >MySQL-Tutorial >Wie füge ich mehrere Zeilen aus einer Unterabfrage in eine MySQL-Tabelle ein, wenn die Unterabfrage mehr als eine Zeile zurückgibt?

Wie füge ich mehrere Zeilen aus einer Unterabfrage in eine MySQL-Tabelle ein, wenn die Unterabfrage mehr als eine Zeile zurückgibt?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-02 15:08:29199Durchsuche

How to Insert Multiple Rows from a Subquery into a MySQL Table When the Subquery Returns More Than One Row?

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!

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