01. august 2004 - 20:18Der er
7 kommentarer og 1 løsning
SQL fejlen ved flere kriterier i WHERE
Hej E!
Jeg har et lille problem med denne SQL. Hvis jeg nøjes med et kriterie i WHERE klausulen virker det fint, men når flere kriterier skal opfyles får jeg intet output (selvom jeg burde).
Jeg ønsker altså at finde personerne som både er noteret for id_sprogomraader 1 og 4.
SQL: SELECT DISTINCT id, navn FROM stamdata JOIN sprogrelation ON stamdata.id=sprogrelation.id_stamdata WHERE sprogrelation.id_sprogomraader='1' AND sprogrelation.id_sprogomraader='4'
Jeg bruger MySQL, hvis det skulle have nogen betydning.
Hvis jeg bruger OR får jeg alle dem der har 1 eller 4, jeg skal bruge dem der både har 1 og 4.
sprogrelation er en m-n relation, så den samme person kan findes flere gange i tabellen med forskellige værdier tilknyttet. f.eks. stamdata.id|id_sprogomraader 1|1 1|4 2|2
I dette eksempel burde jeg få id_stamdata '1' som output.
NB: "SELECT id, navn" er fra stamdata, altså stamdata.id, stamdata.navn
Jeg får ingen fejlmeddelse, men bare et tomt output. Har kontrolleret i selve databasen at der findes nogle som både er registreret under værdien 1 og 4.
SELECT id,navn FROM stamdata,sprogrelation sr1,sprogrelation sr2 WHERE stamdata.id=sr1.id_stamdata AND sr1.id_sprogområder='1' AND stamdata.id=sr2.id_stamdata AND sr2.id_sprogområder='4'
Fik følgende til at virke: SELECT DISTINCT stamdata.id, stamdata.navn FROM stamdata JOIN sprogrelation sr1 ON stamdata.id = sr1.id_stamdata JOIN sprogrelation sr2 ON stamdata.id = sr2.id_stamdata WHERE sr1.id_sprogomraader = '1' AND sr2.id_sprogomraader = '4'
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.