Avatar billede hnto Nybegynder
30. januar 2003 - 08:33 Der er 5 kommentarer og
1 løsning

UNION Query

år man laver en UNION query på ét felt vil den så automatisk lave en GROUP BY. ??

Eks.
Jeg har 2 lister med hver 1999 og 2047 poster, med ved UNION giver den kun 2050. !?!

Er det fordi den samtidigt grupperer
Avatar billede niceday Nybegynder
30. januar 2003 - 09:02 #1
Det er fordi dit sql-kald via Union fletter/sammensætter de 2 tabeller. Der hvor postid'et er ens undlades posten.

F.eks.

Tabel 1
'''''''''
Id    Navn

1      Niels
2      Jane
6      Thomas

Tabel 2
'''''''''
Id    Navn

1      Jørgen
3      Hans
4      Svend

Ved at lave union mellem disse to tabeller, vil outputtet komme til at se sådan ud:

1      Niels
2      Jane
3      Hans
4      Svend
6      Thomas

Den får altså heller ikke det samme antal poster som antallet af poster i de 2 tabeller.

Den prioriterer altid den førstnævnte tabel først, hvilket kan ses ved at den undlader Niels (tabel 2), fordi ID'et allerede er 'brugt'.

:-)
Avatar billede niceday Nybegynder
30. januar 2003 - 09:03 #2
Korrektion:

"Der hvor postid'et er ens undlades posten."

menes

"Der hvor postid'et er ens undlades posten i de andre tabeller hvor posten har samme ID"
Avatar billede hnto Nybegynder
30. januar 2003 - 09:13 #3
Vil det dermed sige at såfremt jeg kun har et NAME felt og navnet NIELS står i begge tabeller vises dette i UNION kun én gang :

eks

Tabel 1
Niels
Jane

Tabel 2
Niels
Jørgen

Ved at lave union mellem disse to tabeller, vil outputtet komme til at se sådan ud:

Niels
Jane
Jørgen

Eller ??
Avatar billede hnto Nybegynder
30. januar 2003 - 09:42 #4
svar til mig selv efter test : Ja det bliver kun
Niels
Jane
Jørgen
Avatar billede niceday Nybegynder
30. januar 2003 - 16:23 #5
:-)

Faktisk er der meget store ligheder mellem JOIN og UNION - den eneste forskel er bare at ved UNION smider den allerede eksisterende poster væk, som den vælger udfra det du har angivet i din streng.

UNION bruges f.eks. ved sammenkørsler af 2 kundetabeller - yderst effektivt værktøj og efter min mening ofte overset, når folk står i dette problem.
Avatar billede nih Novice
30. januar 2003 - 22:05 #6
PS
Hvis du bruger sytaksen: Select .... UNION ALL Select ....
returneres alle poster fra begge forespørgsler

Niels
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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