29. maj 2006 - 17:33Der er
4 kommentarer og 1 løsning
joine 2 tabeller
Jeg har rodet en del med denne forespørgsel uden held.
jeg har 2 tabeller den ene hedder Salg og den anden hedder Users I tabellen Salg ligger "user" og "dato". I tabellen Users ligger navn.
Salg Users ---- ----- user navn dato
Tabellen Users-navn indeholder alle brugernavne. Tabellen Salg indeholder en entry hvor gang en bruger er logget ind med dato.
f.eks bruger1021 2006-12-24
Nu vil jeg gerne sammenligne disse 2 tabeller og finde ud af hvilke brugere (fra Users) der "ikke" var logget ind en given dato (fra Salg).
Så hvis jeg f.eks har en brugerliste på 50 i Users og der er 2 der har været logget ind på en given dato skal output være de 48 brugere der ikke har være logget ind den angivne dato.
jeg har prøvet noget i retning af nedenstående i flere forskellige afskygninger uden held.
SELECT navn FROM Users LEFT JOIN Salg ON navn=user WHERE user IS NULL LEFT JOIN Salg ON dato WHERE dato = '2006-12-24'
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.
Nej, jeg kan godt se den ikke virker efter hensigten - det er nok den ekstra betingelse der gør det...
Jeg er ikke sikker på den sådan lige er til at skrive om fra den subselect - men du kan jo evt. vælge at dele det op i to forespørgsler, en til at hente de ID'ere der er, og en anden der så sætter dem ind i stedet for subselecten i en kommaseparert liste...
Dvs. den første query ville se sådan ud:
SELECT user FROM salg WHERE dato='2006-12-24';
og hvis denne returnerede bruger 1, 2 og 3, ville den anden forespørgsel så se sådan ud:
SELECT navn FORM Users WHERE navn NOT IN (1,2,3);
såfremt det der gemmes i Salg er et tal - ellers skal du huske at de skal skrives som strings: NOT IN ('1','2','3')
Jeg smider et svar som du kan bruge hvis du vil - men for min skyld må du gerne lade spørgsmålet stå et par dage og se om der er en eller anden der har en bedre ide :)
Lige til din orientering: Du kan godt bruge NOT IN sålænge du selv udfylder ID'erne - i hvert fald i MySQL 4.0.
Synes godt om
Ny brugerNybegynder
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.