INSERT INTO OvningsDataMM ( MotesID, Person )
(SELECT MoteBasdata.ID, 'Erik'
FROM MoteBasdata
WHERE MoteBasdata.Malgrupp='pepsi')
bör fungera. Dock kommer alla heta erik då.
4 svar · 576 visningar · startad av fredrik_kratz
Vill dels läsa in data till en tabell från en annan men även läsa in värden (som man vanligtvis görs via VALUES).
Följande fungerar då jag enbart läser in ID från tabellen MoteBasdata till kolumnen MotesID i tabellen OvningsDataMM:
INSERT INTO OvningsDataMM ( MotesID )
SELECT MoteBasdata.ID
FROM MoteBasdata
WHERE MoteBasdata.Malgrupp='pepsi';
Men om jag sedan vill lägga in mer i OvningsDataMM (som tex Person) så blir det fel. Jag tyckte att det borde vara i form av:
INSERT INTO OvningsDataMM ( MotesID, Person )
(SELECT MoteBasdata.ID
FROM MoteBasdata
WHERE MoteBasdata.Malgrupp='pepsi'),'Erik';
Men så funkar det tydligen inte!
Hur ska jag göra för att få till denna SQL-str ...
INSERT INTO OvningsDataMM ( MotesID, Person )
(SELECT MoteBasdata.ID, 'Erik'
FROM MoteBasdata
WHERE MoteBasdata.Malgrupp='pepsi')
bör fungera. Dock kommer alla heta erik då.
Testa med
INSERT INTO OvningsDataMM ( MotesID, Person ) VALUES ((SELECT MoteBasdata.ID FROM MoteBasdata WHERE MoteBasdata.Malgrupp='pepsi'), 'Erik')
metalboy skrev:
Testa med
INSERT INTO OvningsDataMM ( MotesID, Person ) VALUES ((SELECT MoteBasdata.ID FROM MoteBasdata WHERE MoteBasdata.Malgrupp='pepsi'), 'Erik')
Resulterar inte det i en sats som ser ut ungefär såhär i klartext:
INSERT INTO OvningsDataMM ( MotesID, Person ) VALUES (1,2,3,7,6,5,8, 'Erik')
Eller tänker jag fel?
Nja, om man har en subselect i values på det sättet så skall det bli fel om selecten retrurnerar mer än en post.