Avatar billede repsak Nybegynder
31. oktober 2004 - 15:15 Der er 11 kommentarer og
1 løsning

UPDATE med joins

Jeg skal foretage en opdatering, hvor jeg skal sætte
felt = '1', men KUN på alle de felter som kommer fra dette SQL select-statement:

SELECT custody.email
FROM custody
INNER JOIN custodyPupil ON custodyPupil.custodyId = custody.id
INNER JOIN pupil ON custodyPupil.pupilId = pupil.id
WHERE pupil.class_year = '2002' AND pupil.class_letter = 'a' AND custody.email NOT LIKE '';

Jeg kan ikke lure hvordan jeg omdanner det til update (vil tilsyneladende ikke acceptere joins...)
Avatar billede hmortensen Nybegynder
31. oktober 2004 - 15:21 #1
Hvilken mySQL version bruger du ?

"Starting with MySQL Version 4.0.4, you can also perform UPDATE operations that cover multiple tables:
UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;"
Avatar billede repsak Nybegynder
31. oktober 2004 - 15:28 #2
mysql> select @@version;
+-----------+
| @@VERSION |
+-----------+
| 4.0.21-nt |
+-----------+
Avatar billede hmortensen Nybegynder
31. oktober 2004 - 15:45 #3
Trist.

Ved ikke om det kan laves med en sub select. Ellers skal du nok ud i 2 queries
Avatar billede majkat Nybegynder
31. oktober 2004 - 16:10 #4
Nu ved jeg ikke lige hvilket felt i hvilken tabel du vil opdatere, men hvis vi antager at det er f.eks. "counter" in "custody", så er syntaksen noget der ligger meget tæt på:

UPDATE custody, custodyPupil, pupil,
SET custody.counter = 1
WHERE custodyPupil.custodyId = custody.id
  AND custodyPupil.pupilId = pupil.id
  AND pupil.class_year = '2002' AND pupil.class_letter = 'a' AND custody.email NOT LIKE '';
Avatar billede hmortensen Nybegynder
31. oktober 2004 - 16:13 #5
majkat, det kan først lade sig gøre i versoin 4.0.4 iflg manualen
Avatar billede majkat Nybegynder
31. oktober 2004 - 16:35 #6
21 er vel større end 4?
Avatar billede hmortensen Nybegynder
31. oktober 2004 - 16:40 #7
Ups, ja.
Læste bare derhenad og opdagede et 2-tal :)
Avatar billede repsak Nybegynder
31. oktober 2004 - 17:18 #8
argh ;-)
Der må være kvajebajer fra hmortensen
og point til majkat
;-)
Takker :-)
Avatar billede hmortensen Nybegynder
31. oktober 2004 - 17:20 #9
Havde da et virkende eksempel med. Kunne bare ikke aflæse en version, så troede ik det kunne bruges. Er det så galt ? ;)
Avatar billede repsak Nybegynder
31. oktober 2004 - 17:28 #10
hehe det skal ikke komme an på det.. du må godt lægge et svar også :-)
Avatar billede majkat Nybegynder
31. oktober 2004 - 19:48 #11
svar
Avatar billede repsak Nybegynder
09. november 2004 - 09:06 #12
timeout :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester