Avatar billede ttopholm Nybegynder
15. februar 2005 - 02:34 Der er 11 kommentarer og
1 løsning

Få flere tupler end jeg burde

Jeg har denne sætning

Select * From log l, opgave o, opgavebesvarelse e  where l.UniqueID=o.UniqueID and l.firmaid = " & session("id") & "

hvor jeg burde få en tupel ud, men jeg får 15. Selvom der ikke er 15 i tabellen
Avatar billede alister_crowley Nybegynder
15. februar 2005 - 04:06 #1
en god ide er at skrive alle MySQL reseverede ord med STORE BOGSTAVER.

Og så kan du forresten ikke bruge mellemrum i dine tabelnavne, ved ikke hvordan du er kommet frem til at gøre sådan.
Avatar billede alister_crowley Nybegynder
15. februar 2005 - 04:08 #2
ellers tror jeg at det du forsøger er:

SELECT * FROM log AS l, opgave AS o,opgavebesvarelse AS e WHERE l.UniqueID=o.UniqueID and l.firmaid=" & session("id")
Avatar billede hmortensen Nybegynder
15. februar 2005 - 04:10 #3
alister_crowley:
tabelnavn alias
og
tabelnavn AS alias
det er det samme

Tror dit problem ligger i "opgavebesvarelse", da du ikke joiner den.
Avatar billede hmortensen Nybegynder
15. februar 2005 - 04:18 #4
Og lige for at tilføje, man kan godt lave tabeller/felter med mellemrum. Navnet skal da omgrænses ``. Det samme gælder for reserverede SQL ord.
Avatar billede alister_crowley Nybegynder
15. februar 2005 - 04:24 #5
hmortensen

okay, det var ny syntaks, men det virker bare forvirendere :)
Men så har jeg lært det.

Tricket med `` kender jeg godt, men det ikker god kodning at bruge mellemrum nogle som helst steder... (undtagen i værdier)
Avatar billede arne_v Ekspert
15. februar 2005 - 07:35 #6
hm har uden tvivl ret

du har 3 tabeller men kun 1 JOIN betingelse

hvis du tilføjer en ekstra join betingelse så forsvinder de ekstra rækker
Avatar billede ttopholm Nybegynder
15. februar 2005 - 10:07 #7
Det er rigitg nok med de tre tabeller, men grunden til den var der var fordi jeg ville også have den med således  at den fjerne de som også eksistere i opgavebesvarelse. Så jeg kun få de tubler hvor der er ingen tubler er i opgavebesvaresle der matcher opgavebesvare.firmaid = session("id") and opgavebesvare.UniqueID=o.UniqueID..

Hvis i kan følge mig
Avatar billede arne_v Ekspert
15. februar 2005 - 10:24 #8
SELECT *
FFROM (log l JOIN opgave o ON l.UniqueID=o.UniqueID )
LEFT JOIN opgavebesvarelse e ON e.UniqueID=o.UniqueID
where e.UniqueID IS NULL and l.firmaid = X

måske
Avatar billede arne_v Ekspert
25. februar 2005 - 20:24 #9
ttopholm>

Kommet videre ?
Avatar billede ttopholm Nybegynder
25. februar 2005 - 21:13 #10
nej ikke helt endnu
Avatar billede ttopholm Nybegynder
01. marts 2005 - 18:27 #11
Jeg får en fejl:

Syntax error in JOIN operation.

Her linien:
sql1 ="SELECT * FROM (log l JOIN opgave o ON l.UniqueID=o.UniqueID ) LEFT JOIN opgavebesvarelse e ON e.UniqueID=o.UniqueID where e.UniqueID IS NULL and l.firmaid = " & session("id") & ""
Avatar billede ttopholm Nybegynder
10. marts 2005 - 10:38 #12
Fandt en anden løsning, ved at gemme data'en i en anden tabel, så medmindre der er ingen der vil have point, så lukker jeg.
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