Avatar billede mik28 Seniormester
14. marts 2005 - 13:39 Der er 21 kommentarer og
1 løsning

Problem med subselect

Hvad er der galt med det her

Select uo.realname
From
users uo
Where uo.id not in (  Select u.id
From
users u,
menutekst_user_rel m
Where u.id = m.user_id
And     m.menutekst_id = 39 );

De to selects giver det de skal hver for sig
Avatar billede barklund Nybegynder
14. marts 2005 - 13:43 #1
Hvad får du ud af det? Hvilken fejl får du?

Du skal så vidt jeg husker helt op til de nyeste MySQL-versioner for at have subselects.

--
Morten Barklund
Avatar billede mik28 Seniormester
14. marts 2005 - 13:44 #2
Jeg anvender 4.0.18
Avatar billede barklund Nybegynder
14. marts 2005 - 13:48 #3
Jeg går ud fra, at det ikke virker siden du spørger - men hvordan virker det ikke? Får du en fejl eller er result-settet bare tomt?
Avatar billede mik28 Seniormester
14. marts 2005 - 13:49 #4
Jeg får en syntaks fejl
Avatar billede barklund Nybegynder
14. marts 2005 - 13:49 #5
Hvilken fejl?
Avatar billede mik28 Seniormester
14. marts 2005 - 13:50 #6
You have an error in your SQL syntax. Check the manual the corresponds to your MySQL server version for the right syntax to use near 'and u.id not in (select user_id from menutekst_user_rel where user_id = m.user_id and menutekst_id = m.menutekst_id)
Avatar billede barklund Nybegynder
14. marts 2005 - 13:52 #7
Jamen, der står da ikke "and u.id..." i ovenstående sql? Du må lave en anden query, end du siger, for ellers ville den fejl ikke komme.
Avatar billede barklund Nybegynder
14. marts 2005 - 13:52 #8
Og hvorfor kom du ikke med info om fejlmeddelsen med det samme - det er jo den, man skal bruge, for at rette fejlen.
Avatar billede mik28 Seniormester
14. marts 2005 - 13:55 #9
det er den samme fejl. Det er sp bare near Select u.id
From
users u,
menutekst_user_rel m
Where u.id = m.user_id
And    m.menutekst_id = 39 );
Avatar billede barklund Nybegynder
14. marts 2005 - 13:57 #10
Kan du ikke lige komme den den præcise info. Præcist hvilken query og _præcist_ hvilken fejlmeddelse. Jo mere info, desto større chance for at finde problemet :)
Avatar billede mik28 Seniormester
14. marts 2005 - 13:59 #11
SQL execution error # 1064
Avatar billede barklund Nybegynder
14. marts 2005 - 14:01 #12
Ja, det var jo ikke meget info? Ikke noget med "You have an eror..."?

Kom nu, hjælp dig selv lidt ;)
Avatar billede mik28 Seniormester
14. marts 2005 - 14:02 #13
You have an error in your SQL syntax. Check the manual the corresponds to your MySQL server version for the right syntax to use near Select u.id From users u, menutekst_user_rel m Where u.id = m.user_id And    m.menutekst_id = 39 );
Avatar billede joechr Nybegynder
14. marts 2005 - 14:04 #14
Du kan først bruge subqueries fra version 4.1, så du skal nok opdaterer din mysql før din query virker ;-)
Avatar billede mik28 Seniormester
14. marts 2005 - 14:05 #15
tak for det
Avatar billede barklund Nybegynder
14. marts 2005 - 14:06 #16
Oh ja, det er da også rigtigt - se evt. http://dev.mysql.com/doc/mysql/en/rewriting-subqueries.html for at kunne omskrive - dog tror jeg ikke lige, at det kan lade sig gøre med din query.
Avatar billede mik28 Seniormester
14. marts 2005 - 14:06 #17
tak for interessen :-)
Avatar billede arne_v Ekspert
14. marts 2005 - 14:09 #18
Den query burde være ret nem at omskrive til MySQL <4.1
Avatar billede barklund Nybegynder
14. marts 2005 - 14:11 #19
Mja, jeg kan nu ikke lige se hvordan.
Avatar billede mik28 Seniormester
14. marts 2005 - 14:11 #20
heller ikke mig
Avatar billede arne_v Ekspert
14. marts 2005 - 14:30 #21
Prøv:

SELECT uo.realname
FROM (users u JOIN menutekst_user_rel m ON u.id = m.user_id)
RIGTH JOIN users uo ON uo.id=u.id AND m.menutekst_id = 39
WHERE u.id IS NULL
Avatar billede arne_v Ekspert
14. marts 2005 - 14:31 #22
Det er utestet men teknikken plejer at virke
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