On Fri, 18 Oct 2002 15:32:33 +0000 (UTC), Jesper Stocholm
<jespers@stocholm.invalid> wrote:
>Jeg kunne godt tænke mig at lave følgende SQL til min mySQL-database:
>
>INSERT INTO
> table1 (strHeadline,txtDescription,intAuthorId)
>VALUES
> ('dette er en overskrift','dette er en beskrivelse',
> (SELECT intAuthorId FROM table2 where strEmail = 'email@email.dk')
> );
>
>Men - alas - det virker ikke - sikkert fordi mySQL ikke understøtter nestede
>SELECTs i den version jeg har adgang til.
>
>Er der en måde at komme udenom det på - eller må jeg bide i det sure æble og
>eksplicit spørge efter intAuthorId inden jeg indsætter noget nyt ?
Ja, iflg. manualen gør det det forkert, den siger:
INSERT [LOW_PRIORITY | DELAYED] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
Så du kan bruge noget i stil med
INSERT INTO
table1 (strHeadline,txtDescription,intAuthorId)
SELECT
'dette er en overskrift',
'dette er en beskrivelse',
intAuthorId
FROM table2 WHERE strEmail = 'email@email.dk';
....husk at ovenstående er helt og aldeles utestet
--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk
- nu med link til egne billeder fra Aero-koncerten
med Jean Michel Jarre