Svish Skrevet 26. januar 2007 Skrevet 26. januar 2007 Jeg prøver å lage et sql-script som skal opprette litt default data i en database vi skal/har modellert. Og det jeg lurer på er om det er mulig å hente info fra en table samtidig som man inserter i en annen?? altså, la oss si jeg har et frukt table med feltene FRUKT_ID og NAVN. FRUKT_ID'en autoinkrementeres, så jeg vet ikke hva den er uten å telle insert linjer eller slå opp. Jeg bare putter en drøss med "banan", "eple", "pære", osv inn der liksom. Så i et annet table x, har jeg FRUKT_ID som foreignkey: Hvordan kan jeg i spørringene der jeg INSERT'er i x finne frukt_id'en fra frukt utifra fruktnavnet? er dette mulig på noe vis? tenker meg noe sånt som: INSERT INTO x(y, frukt_id) VALUES("litt tekst", SELECT frukt_id FROM frukt WHERE navn = "eple"); bare at jeg vet det der ser særs feil ut.. noen som har en løsning? Det jeg prøver er altså å gjøre dette senarioet automatisk: SELECT frukt_id FROM frukt WHERE navn = "banan"; # notere frukt_id for hånd et eller annet sted, for eksempel 58 INSERT INTO x(y, frukt_id) VALUES("Litt tekst", 58); Skal nemlig lage en hel liten drøss, og databasen skal opprettes automatisk hos en lærer klar til bruk..
roac Skrevet 26. januar 2007 Skrevet 26. januar 2007 insert into x (y, frukt_id) select "litt tekst", frukt_id from frukt where navn = "eple" Jeg er litt usikker på om du må navngi kolonnen som du lager med innholdet "litt tekst", men det finner du ut av når du prøver.
Svish Skrevet 29. januar 2007 Forfatter Skrevet 29. januar 2007 nice, det funka jo faktisk er det mulig å gi den flere også? altså inserte flereting på den måten? eller blir det vanskelig? tenker altså å ta flere selects i den inserten eller no... (prøver ikke å være vanskelig, bare vil lære og finne ut hva som egentlig er mulig i dette sql greiene, hehe)
roac Skrevet 29. januar 2007 Skrevet 29. januar 2007 Null problem, du kan joine flere tabeller og hente data fra en rekke tabeller også
Svish Skrevet 29. januar 2007 Forfatter Skrevet 29. januar 2007 ja altså, å hente data fra flere tabeller kan jeg, sånn litt i hvert fall, men å legge inn flere rader med den inserten der? for den selecten vil jo hente ut en rad. og en kan selvfølgelig få den til å hente ut flere, men hvordan kan en da gi forskjellige verdier til de faste? altså inserten skal inserte for eksempel ("fast verdi", selected verdi, "fast verdi") om noen hang med på det.. altså selcten kan jo hente flere rader, men da vil vel den "faste verdien" bli samme på alle de selectede radene sant?
roac Skrevet 29. januar 2007 Skrevet 29. januar 2007 En select returnerer en BAG, det vil si et sett med unike eller ikke unike rader. Den BAGen som spørringen returnerer blir lagt inn. Det er opp til deg som skriver spørringen å lage en spørring som returnerer en eller flere rader.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå