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.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.