Avatar billede htm Nybegynder
04. juli 2003 - 23:51 Der er 20 kommentarer og
2 løsninger

Generelle sql spørgsmål

Hej

Her snakker jeg generelt om databasesprog SQL.

Kunne godt tænke mig lidt kort præcis forklaring på hvad de forskellige joins gør

INNER JOIN
LEFT JOIN
RIGHT JOIN
OUTER JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN

Derudover hvis I havde en god tutorial eller guide til avanceret sql må I godt smide et link!
Avatar billede ztyxx Nybegynder
04. juli 2003 - 23:58 #1
http://www.devshed.com/Server_Side/MySQL/SQLJoins/page1.html
beskrivelse af joins, den er lidt lang, så print den ud og læs den, ellers bliver man lidt bims, men den viser grundlæggende om joins, den er ikke så ringe som den er lang ;-)
Avatar billede htm Nybegynder
05. juli 2003 - 00:00 #2
Lækkert med en god tutorial - den vil jeg kigge på ved lejlighed!

Kan du give en kort præcis forklaring på JOINS? Jeg kender godt INNER JOIN og LEFT JOIN og RIGHT JOIN - men hvis du lige ville kort beskrive de andre ville det være kanon!
Avatar billede ztyxx Nybegynder
05. juli 2003 - 00:09 #3
hmm, må blive dig svar skyldig, kender også kun til de andre, iøvrigt kan jeg anbefaledig at downloade
hlp filen til MySQL
http://www.mysql.com/downloads/download.php?file=Downloads%2FManual%2Fmanual.hlp-2002-07-26.zip&pick=mirror
Avatar billede htm Nybegynder
05. juli 2003 - 00:20 #4
Hmmm æv - ville godt have en beksrivelse af hvad de gør - og evt. hvordan de blive brugt!

Forøvrigt syntes jeg ikke din tutorial dækker de forskellige joins former så godt? (har kun løsligt kigget den igennem)

Det er nemmere at bruge deres webside end en hjælpefil syntes jeg ;o)
Avatar billede ztyxx Nybegynder
05. juli 2003 - 00:21 #5
de tre sidste joins er nu heller ikke beskrevet i hlp fil alligevel
Avatar billede ztyxx Nybegynder
05. juli 2003 - 00:22 #6
Avatar billede htm Nybegynder
05. juli 2003 - 00:24 #7
Ja den sidste tutorial ser fin ud, godt gjort at nogle af de bedst formulerede skal findes på dansk ;o) Vil lige kigge på det, men er stadig åben for en forklaring af de enkelte ;o)

Tak ind til videre!
Avatar billede ztyxx Nybegynder
05. juli 2003 - 00:26 #8
jeg synes nu at de er ret godt forklarede hvis man læser det igennem
Avatar billede ztyxx Nybegynder
05. juli 2003 - 00:27 #9
det var den bedste af dem der kom op på en google-søgning
Avatar billede ztyxx Nybegynder
05. juli 2003 - 00:28 #10
sakset fra artiklen:

Hvornår skal man bruge LEFT og hvornår skal man bruge RIGHT

Om der vælges en LEFT OUTER JOIN eller en RIGHT OUTER JOIN afhænger ganske simpelt af hvilke tabel du laver en SELECT fra.

LEFT OUTER JOINS betyder at de poster skal være i den tabel der er defineret til venstre for lighedstegnet, men ikke nødvendigvis i tabellen til højre. RIGHT OUTER JOIN virker modsat (naturligvis) :-)
Avatar billede htm Nybegynder
05. juli 2003 - 00:34 #11
Hmm - har lige læst den på active developer igennem, og nu er jeg da lidt mere forvirret ;o)

For mig at se er der ingen forskel på LEFT JOIN og LEFT OUTER JOIN i følge arktiklen? Man kan vel også bruge en LEFT INNER JOIN eller hvad? og hvad gør den så?
Avatar billede ztyxx Nybegynder
05. juli 2003 - 00:38 #12
outer join, så vidt jeg forstår, tager ikke højde for om der er relaterede poster, det gør en alm join
Avatar billede htm Nybegynder
05. juli 2003 - 00:41 #13
Er vi ikke enige om at

LEFT JOIN - hiver alle data fra tabel1 og hvis der er nogle der matcher kriteriet i tabel2 tager den også disse data med, ellers ikke!

Så vidt jeg kan se virker LEFT OUTER JOIN på samme måde!
Avatar billede ztyxx Nybegynder
05. juli 2003 - 00:44 #14
ikke som jeg forstår det, så er outer join ligeglad, men måske er det mig der misforstår, men den tager jo også dem med der har NULL værdi
Avatar billede htm Nybegynder
05. juli 2003 - 00:51 #15
Yep sådan er LEFT OUTER JOIN men hvordan er LEFT JOIN?

Vi har en tabel

tabel1
-aid--anavn--ref
1  a  4
2  b  5
3  c 

tabel2
-bid--bnavn--
3  u 
4  p 
5  o 
6  i
7

hvis jeg så laver en
SELECT tabel1.aid, tabel1.anavn, tabel2.bnavn FROM tabel1, tabel2 LEFT JOIN tabel2 ON tabel1.ref=tabel2.bid

så lister den jo

1 a p
2 b o
3 c <null>

Er det ikke korrekt? Og vil den ikke også gøre det hvis jeg valgte at bruge LEFT OUTER JOIN?
Avatar billede htm Nybegynder
05. juli 2003 - 00:51 #16
p.s. Håber du forstår min sjuskede måde at forklare det på ;o)
Avatar billede htm Nybegynder
05. juli 2003 - 00:58 #17
Min sql skulle selvfølgelig være:

SELECT tabel1.aid, tabel1.anavn, tabel2.bnavn
FROM tabel1
LEFT JOIN tabel2 ON tabel1.aid = tabel2.bid
Avatar billede ztyxx Nybegynder
05. juli 2003 - 00:59 #18
kan ikke lige gennemskue det...
Avatar billede htm Nybegynder
05. juli 2003 - 01:00 #19
Det kan jeg hellere ikke - når jeg kører det i phpmyadmin får jeg samme resultater med LEFT JOIN og LEFT OUTER JOIN :(
Avatar billede htm Nybegynder
13. juli 2003 - 18:17 #20
Nogen der kan forklare forskellen på LEFT JOIN og LEFT OUTER JOIN?
Avatar billede htm Nybegynder
16. juli 2003 - 18:38 #21
Hmm jeg lukker!

ztyxx>> Du får lidt point for din ulejlighed og dine links!
Avatar billede ztyxx Nybegynder
16. juli 2003 - 19:55 #22
jamen så siger jeg mange tak, er ked af ikke at kunne oplyse dig mere, ville også gerne selv vide forskellen
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