2017-01-12 13 views
1

Der Versuch, eine neue Zeile für jeden der Einträge einer Tabelle einzufügen.MariaDB "Einfügen" in mehrere Zeilen mit mehreren Unterabfragen

INSERT INTO `serviceProducts`(`model_id`, `url_name`, `priority`, `status`, `info`, `image_link`, `mobilephone`, `service`, `time`, `price`) 
SELECT id FROM models, 
CONCAT(SELECT url_name FROM models,"-felsoekning"), 
10, 
1, 
"", 
"", 
(SELECT name FROM models), 
"Felsökning", 
"", 
399 

Ich möchte einen neuen "Service" -Eintrag für jedes der vorhandenen Modelle hinzufügen. Daher muss ich alle Modell-IDs sowie ihre URL-freundlichen Namen und normalen Namen auswählen. Diese Abfrage gibt einen Fehler in der Nähe von (SELECT name FROM models) zurück.

Antwort

2

Was

INSERT INTO `serviceProducts`(`model_id`, `url_name`, `priority`, `status`, `info`, `image_link`, `mobilephone`, `service`, `time`, `price`) 
SELECT id, 
CONCAT(url_name, "-felsoekning"), 
10, 
1, 
"", 
"", 
name, 
"Felsökning", 
"", 
399 
from models; 
+1

Natürlich ist die Antwort immer die einfachste Sache :). Danke – m33ts4k0z

+0

Gern geschehen :) –

1

nicht Subqueries in der SELECT verwenden. Verwenden Sie einfach eine einzige SELECT, die die Konstanten mit den Spalten aus der anderen Tabelle zusammenführt.

INSERT INTO `serviceProducts`(`model_id`, `url_name`, `priority`, `status`, `info`, `image_link`, `mobilephone`, `service`, `time`, `price`) 
SELECT id, CONCAT(url_name,"-felsoekning"), 10, 1, "", "", name, "Felsökning", "", 399 
FROM models 
+0

Ich wusste das eigentlich nicht. Vielen Dank – m33ts4k0z

Verwandte Themen