Avatar billede sbjerre Nybegynder
29. januar 2003 - 10:59 Der er 6 kommentarer og
1 løsning

Udtræk fra db

Hej
Der er lige en, måske simpelt, ting jeg ikke kan greje.

Jeg har en tabel: tabel1 som ser ud som følger

id    column1    column2
1      a          x
2      b          y
3      c          z
4      a          y

Dette er en tabel der afløser en mange-til-mange relation hvor column 1 og 2 er fremmednøgler til to andre tabeller

Det jeg ønsker er følgende: Hvis jeg udtrækker via column 1 som f.eks.
select * from table1 where column1 = a
resultat = id 1, id 4
men da jeg ønsker at udtrække hvor mange af værdier fra column2 skal jeg udstrække de column2 værdier fra tabel1 hvor column1 = a ikke er sammenkoblet med column2

Med andre ord vil det sige at jeg i ovenstående eksempel skal have udtrukket værdien fra column2 der er = z (den eneste værdi hvor column1 = a IKKE er tilknyttet)

How to do?

vh Sbjerre
Avatar billede _darkstar_ Nybegynder
29. januar 2003 - 11:15 #1
SELECT * FROM tabel1 WHERE column1 <> 'a'
Avatar billede _darkstar_ Nybegynder
29. januar 2003 - 11:16 #2
Iøvrigt er det noget skidt at have id-feltet som sikkert er primær nøgle.

Du bør fjerne det og sætte column 1 og 2 som primær-nøgler.
Avatar billede _darkstar_ Nybegynder
29. januar 2003 - 11:21 #3
Eller er det denne her, du leder efter?

SELECT * FROM tabel1 WHERE column2 NOT IN ( SELECT column2 FROM tabel1 WHERE column1 <> 'a')

Jeg har svært ved at forstå hvad dit spørgsmål egentlig er.
Avatar billede arnvig Nybegynder
29. januar 2003 - 11:22 #4
I dit eksempel ser det ud til at også ID: 2 (column2 = y) er valid,
den har heller ikke reference til column1 = a
Avatar billede arnvig Nybegynder
29. januar 2003 - 11:23 #5
Enig med darkstar, hvad er det du vil opnå ??
Avatar billede sbjerre Nybegynder
29. januar 2003 - 12:00 #6
ok...
jeg har tre tabeller varer, varegrupper og varesgruppes

tabel 'vare'       
id    navn                                                 
1    salat
2    gulerod
3    agurk

tabel 'varesgrupper'
id    vareid      gruppeid
1    1            1
2    2            2
3    3            3
4    1            3

tabel 'varegrupper'
gruppe_id    navn
1            grønsager
2            slik
3            frokost
hver vare kan høre til flere varegrupper (styres via tabel 'varesgrupper')!

Ud fra et vareid kan jeg dermed udtrække hvilke grupper den pågældende vare hører til via SQL query

select gruppe_ID from varesgrupper where vare_id = 1

hvilket ville give resultatet

gruppe_id
1 (grønsager)
3 (frokort)

det jeg ønsker er at vide hvilke varegrupper der findes som vare_id 1(salet) IKKE er medlem af
Avatar billede _darkstar_ Nybegynder
29. januar 2003 - 12:43 #7
SELECT * FROM varegrupper WHERE gruppe_id NOT IN ( SELECT gruppeid FROM varesgrupper WHERE vareid = 1)
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