Veld 1 pakken als Veld 2 voldoet aan eis

Status
Niet open voor verdere reacties.

Blukker

Nieuwe gebruiker
Lid geworden
7 feb 2010
Berichten
4
Ik ben nog vrij nieuw wanneer het gaat om de meer uitgebreidere functies van SQL. Vandaar dat ik eventjes hulp nodig heb van de meer gespecialiseerde onder ons.

Ik wil namelijk snel wat aanvullingen doen met een querie, zonder dat handmatig te doen.
Ik wil dat dit zo gebeurd:

- Als veld2 voldoet aan 'eis', dan pakken we het getal in veld1 van die rij en slaan we die op in 'x'
- Dan gaan we over op "INSERT INTO `tabel1` (`veld1`, `veld2`, 'veld3', etc) VALUES ('x', 0, 0, etc)"
- Dit moet gedaan worden voor alle rijen waar veld2 voldoet aan 'eis', en er dus voor elke keer een andere 'x' moet worden ingevuld

Ik hoop dat ik duidelijk ben geweest, zo niet dan hoor ik het wel.

Alvast bedankt!
 
Ik vermoed dat je op zoek bent naar deze functionaliteit:

[sql]
INSERT INTO tabel ( veld1, veld2, veld3 )
(
SELECT veld4, 0, 0
FROM tabel2
WHERE veld5 = 'voldoet aan eis'
)
[/sql]

Je kunt een insert doen via een andere select query; hij pompt dan de resultaat set van de subquery in de opgegeven tabel :)
 
Ik heb het een-en-ander zitten proberen met die functie maar ik kom er niet uit.
Misschien als ik mijn vraag iets beter formuleer.

Ik moet bij meerdere `entry` velden het getal '23920' invoeren in `spell`. Maar ik moet alleen de entry velden hebben waar `entry` ook '21551' bij `spell` heeft staan.

Hier wat voorbeeldplaatjes:

voorbeeld21551.jpg

Voorbeeld 1: Alle `entry` velden die '21551' in `spell` hebben staan.

voorbeeld913.jpg

Voorbeeld 2: Alles van `entry` 913.

(Dit is allemaal 1 tabel)

Ik moet dus alle `entry` velden in Voorbeeld 1 pakken, en dan een nieuwe rij invoeren waar bij `spell` het getal 23920 word ingevoerd, en bij reqlevel 60.
 
Laatst bewerkt:
Je vraag is best onduidelijk gesteld, ik begrijp het volgende:

- Selecteer van alle records met spell = 21551 het veld entry
- Voeg evenzoveel records toe met deze entries, spell = 23920 en reqlevel=60.

[SQL]INSERT INTO tabel ( entry, spell, spellcost, reqskill, reqskillvalue, reqlevel)
(
SELECT entry, 23920, 0, 0, 60
FROM tabel
WHERE spell = 21551
)[/SQL]
 
Top! Dat is inderdaad wat ik zocht. Werkt perfect!
Bedankt voor de hulp :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan