Avatar billede jaesper Nybegynder
14. juni 2003 - 11:29 Der er 11 kommentarer og
1 løsning

Slet alle fra én tabel, hvis og kun hvis postem findes i en anden

Hvordan løser jeg følgende:

for alle poster i tabel1{
    Hvis posten findes i tabel2{
        slet posten
        }
    ellers{
        bevar posten
        }
}
Avatar billede mugs Novice
14. juni 2003 - 11:32 #1
Lav en forespørgsel og brug guiden relaterede poster. Kør derefter en sletteforespørgsel på denne forespørgsel.
Avatar billede mugs Novice
14. juni 2003 - 11:39 #2
jaesper < Det var vist noget vrøvl jeg fik fyret af. Glem det - jeg arbejder lidt videre.
Avatar billede mugs Novice
14. juni 2003 - 11:41 #3
?
Avatar billede itbjarne Nybegynder
14. juni 2003 - 22:51 #4
DELETE * FROM tabel1 WHERE tabel1_felt IN (SELECT tabel2_tilsvarende_felt FROM tabel2);
Avatar billede henrik13 Nybegynder
15. juni 2003 - 10:23 #5
>>itbjarne
har du afprøvet det selv.  :o(
Avatar billede itbjarne Nybegynder
15. juni 2003 - 23:21 #6
Jeg mener at have prøvet det tit. Og det virker. Hvad mener du med dit spørgsmål ?
Avatar billede henrik13 Nybegynder
15. juni 2003 - 23:25 #7
>> itbjarne
Jeg kan ikke få det til at virke.  Vh Henrik13
Avatar billede itbjarne Nybegynder
15. juni 2003 - 23:40 #8
Fejlmelding eller andet ?
Jeg har lige prøvet det af her - virker fint. Jeg havde disse to tabeller:

Tabel1:
Feltnavn:  a  b
Værdi:      1  abc
            2  def
            3  ghi

Tabel 2:
feltnavn:  a  b
Værdier:    1  kkk
            2  lll
            6  ooo
            7  yyy

Jeg brugte feltet a til at teste på. Som du kan se, er tallene 1 og 2 fælles for de to tabeller.
Jeg brugte således:
DELETE * FROM tabel1 WHERE a IN (SELECT a FROM tabel2);
Herefter blev de første to records i tabel 1 slettet hvor a = 1 og a = 2. Hvor a = 3 blev recorden ikke slettet.
Avatar billede henrik13 Nybegynder
15. juni 2003 - 23:43 #9
>> itbjarne
Jeg har fået det til at virke. Jeg manglede at slette, "tilsvarende"
Vh Henrik13
Avatar billede itbjarne Nybegynder
15. juni 2003 - 23:49 #10
Lyder godt. Håber Jaesper kan bruge det.
26. marts 2004 - 13:57 #11
Hej

Jeg har samme problem, men hvor skal jeg skrive den gyldne sætning ?

DELETE * FROM tabel1 WHERE a IN (SELECT a FROM tabel2);

MVH

Aleks
Avatar billede mugs Novice
26. marts 2004 - 14:02 #12
I forespørgslens SQL-visning
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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