Avatar billede oasen Nybegynder
24. februar 2003 - 09:40 Der er 7 kommentarer og
2 løsninger

In-operator i MySQL

Det genererer mig temmelig meget, at MySQL ikke understøtter følgende:

Select ID From Tabel1 Where ID In (Select ID From Tabel2)

Er der et alternativ, hvis jeg vil have en række poster fra den ene tabel, der ikke forekommer i den anden?
Jeg mener ikke, det kan ordnes med Left/right join. Muligvis noget inner join...?
Avatar billede nop Nybegynder
24. februar 2003 - 09:44 #1
select id from tabel1 inner join table2 on tabel1.id=tabel2.id
Avatar billede oasen Nybegynder
24. februar 2003 - 09:49 #2
Så får jeg jo bare, de poster der forekommer i begge tabeller.
Jeg skal have dem, der findes i den ene og IKKE i den anden.
Altså:

Tabel 1:_________________Tabel 2
___6_______________________7
___3_______________________1
___8_______________________3
___2_______________________6
___4_______________________2


Her skal der returneres 4 og 8 fra tabel 1, da disse ikke findes i tabel 2.
Avatar billede chrisrj Forsker
24. februar 2003 - 09:52 #3
select id from tabel1 inner join table2 on tabel1.id<>tabel2.id
Avatar billede oasen Nybegynder
24. februar 2003 - 09:59 #4
Det var mere sådan noget, jeg tænkte på. Kan du så gennemskue om følgende vil fungere?

Tabel 1:______________________Tabel 2
__ID1_____________________ID1_________ID2
___6_______________________7___________4
___3_______________________1___________2
___8_______________________3___________9
___2_______________________6___________4
___4_______________________3___________4

Select ID1 From Tabel1 Inner Join Tabel2 On Tabel1.ID1 <> Tabel2.ID1 Where Tabel2.ID2 = 4 Group By ID1

Her skal der så returneres 2, 4 og 8 fra Tabel 1.
Avatar billede chrisrj Forsker
24. februar 2003 - 10:02 #5
Jeg er ikke så stærk i joins, men umiddelbart ser det meget rigtigt ud.

Du kan jo prøve og se hvad resultatet bliver. :)
Avatar billede nop Nybegynder
24. februar 2003 - 10:15 #6
jeg tror det er sådan her:
where udføres på tabel2 resultat=(7,6,3), dernæst joines <> (6,3,8,2,4) med (7,6,3) resultat er 8,2,4.
Så du må have ret.
Avatar billede oasen Nybegynder
24. februar 2003 - 10:25 #7
Vi satser. Tak, begge to :)
Avatar billede chrisrj Forsker
24. februar 2003 - 10:28 #8
Du kunne jo lave et par test-tabeller for at se om det virker....

Du kan bare bruge de tal du har skrevet ovenover. :)
Avatar billede chrisrj Forsker
24. februar 2003 - 10:29 #9
Tak for points! ;)
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
Kurser inden for grundlæggende programmering

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