2016-04-08 8 views
0

Ich versuche, eine ID abhängig von einer anderen Tabelle einfügen, aber ich weiß nicht, wie dies zu tun ist, muss ich es auf diese Weise tun, da ich multiple Werte zu der Zeit einfügen.Einfügen von ausgewählten und statischen Elementen

dies ist mein Versuch gescheitert, so bei tun

INSERT INTO producto (NumeroEconomico, Order_Id,Marca,Modelo,ano,placas,Product_Id,Inventario_Id) 
values ('ad-101', '27', 'Nissan','NP300','2016','aer3457','1',SELECT Id from Inventario WHERE Serie = '5161017293'), 
('ad-102', '27', 'Nissan','NP300','2015','aer5647','1',SELECT Id from Inventario WHERE Serie = '5161019329') 

thx

+0

Was ist der Fehler? – Minh

+0

@Minh ich bekomme Syntaxfehler –

Antwort

2

Sie benötigen Subqueries in Klammern wickeln.

INSERT INTO producto VALUES 
    ('ad-101', '27', 'Nissan','NP300','2016','aer3457','1',(SELECT Id from Inventario WHERE Serie = '5161017293')), 
    ('ad-102', '27', 'Nissan','NP300','2015','aer5647','1',(SELECT Id from Inventario WHERE Serie = '5161019329')) 
+0

yep, danke, das hat den Trick gemacht. –

+1

@ pato.llanguno Wenn dies Ihr Problem gelöst hat, bestätigen Sie dies bitte als Ihre Antwort. –

+0

als Folge, gibt es einen Weg, so dass die Einfügung nur passiert, wenn die Auswahl tatsächlich eine Zeile zurückgibt, ohne die separate Abfrage zu machen? –

1

Haben auch Sie eine INSERT INTO SELECT versucht?

INSERT INTO producto 
(NumeroEconomico, Order_Id,Marca,Modelo,ano,placas,Product_Id,Inventario_Id) 
SELECT 'ad-101', '27', 'Nissan','NP300','2016','aer3457','1',Id 
FROM Inventario WHERE Serie = '5161017293' 
+0

@ pato.llanguno Diese Art von Anweisung würde nur einfügen, wenn 'serie' ein Ergebnis zurückgegeben, wie Sie gefragt haben. Es würde jedoch nicht zulassen, dass mehrere Zeilen zur gleichen Zeit eingefügt werden, wie es die akzeptierte Antwort tut. – Ben

1

Versuchen Sie, mit so etwas wie dieses:

INSERT INTO producto (NumeroEconomico, Order_Id,Marca,Modelo,ano,placas,Product_Id,Inventario_Id) 
SELECT 'ad-101', '27', 'Nissan','NP300','2016','aer3457','1', Id from Inventario WHERE Serie = '5161017293' 

Überprüfen Sie die richtige SQL-Syntax auf: http://www.w3schools.com/sql/sql_insert_into_select.asp