Avatar billede skovjuul Nybegynder
02. juli 2007 - 00:56 Der er 2 kommentarer og
1 løsning

Forstår ikke forskellen på disse forespørgsler

Jeg har lige købt en bog (Grundlæggende programmering i SQL) da der er nogle grund-metoder jeg aldrig helt har fået på plads.
INNER JOINS:
Hvad er forskellen på følgende to metoder?

1) SELECT navn FROM kunder INNER JOIN ordrer ON Kunder.kundenr <> Ordrer.kundenr

2) Select K.navn from kunder k, order o where k.kundenr <> o.kundenr

den første er fra bogen og nr 2 er måden jeg normalt ville gøre det på.

Jeg kan til nød se idéen i en left/right join, men kan ikke lige komme i tanke om nogen steder jeg selv kunne ha' brugt den.


HAVING:

1) select navn, count(by) as P from kunder
where navn like 'Pet%'
group by Navn
having count(by)>1

2) select navn, count(by) as P from kunder
where navn like 'Pet%' and count(by)>2
group by navn

Jeg har aldrig set "Having" før?

Nå, men jeg render jo nok ind i flere ting, men det var da lidt at starte på.

På forhånd tak for hjælpen.
Jesper
Avatar billede arne_v Ekspert
02. juli 2007 - 01:16 #1
Bliver der ikke brugt = fremfor <> i de joins ??

Der er ikke nogen funktionel forskel. Det første er den nye måde at gøre
det på. Det andet er den gammeldages måde at gøre det på. Det er nogen gange
lidt nemmere at overskue med INNER JOIN syntax fordi man kan sætte parenteser -
og man kan ændre en INNER JOIN til en LEFT JOIN hvsi nødvendigt.

WHERE udføres før GROUP BY. HAVING udføres efter GROUP BY. Men gør ellers det samme.
Avatar billede skovjuul Nybegynder
02. juli 2007 - 01:34 #2
Tak igen arne, lyder som om jeg må til at ændre min syntaks til den nye måde for at være med på "noderne" :)

Og i første eksempel bliver der brugt <> i bogen.

Smid et svar mere, så får du pointene i morgen.

Hygge
Jesper
Avatar billede arne_v Ekspert
02. juli 2007 - 01:51 #3
<> vil give rigtigt mange rækker i output !

Svar.
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