/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
[mysql] Joins
Fra : Danni


Dato : 17-01-01 12:36

Når jeg skal joine i mysql plejer jeg bare at bruge
WHERE tabel1.kol1_id = tabel2.kol2_id

Men så ind i mellem ser man jo INNER JOIN og OUTER JOIN og diverse andre
JOINS...

Hvad er det lige de betyder i forhold til den jeg bruger? Er det bare en
anden syntax oder was?



 
 
Jens Gyldenkærne Cla~ (17-01-2001)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 17-01-01 12:57

"Danni" <danni@finne.dk> skrev i <ltf96.65$r4.3673@news.get2net.dk>:

>Når jeg skal joine i mysql plejer jeg bare at bruge
>WHERE tabel1.kol1_id = tabel2.kol2_id

Din syntax svarer helt til INNER JOIN.

Se i øvrigt Peter Lykkegaards udmærkede link i
<news:g0e96.41$r4.2675@news.get2net.dk> (vær dog opmærksom på at
linket er ombrudt).

--
Jens G.

Peter Brodersen (17-01-2001)
Kommentar
Fra : Peter Brodersen


Dato : 17-01-01 17:14

On 17 Jan 2001 11:56:34 GMT, jens_gy@hotmail.com (Jens Gyldenkærne
Clausen) wrote:

>>Når jeg skal joine i mysql plejer jeg bare at bruge
>>WHERE tabel1.kol1_id = tabel2.kol2_id
>
>Din syntax svarer helt til INNER JOIN.

Ikke helt. Den væsentlige forskel er, hvis tabel2.kol2_id ikke findes,
så vil en INNER JOIN stadigvæk returnere en NULL-værdi (og row'en vil
stadigvæk ryge ud).

Det kan være praktisk, hvis man fx har værdier i stil med:

(adresse: navn, postnummer)
Peter, 2720
Hans, 9999
Jens, 2000

.... og så tilsvarende har en postnr/by-tabel:

(post: postnummer, bynavn)
2000, Frederiksberg
2720, Vanløse

Hvis man så select'er over de to tabeller, og sætter "WHERE
adresse.postnummer = post.postnummer", vil man ikke få hevet Hans med
ud.


--
- Pede
Professionel nørd

Jens Gyldenkærne Cla~ (17-01-2001)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 17-01-01 17:42

Peter Brodersen <professionel@nerd.dk> skrev:

[(INNER JOIN ON a.s = b.t) = (WHERE a.s = b.t)]

>Ikke helt. Den væsentlige forskel er, hvis tabel2.kol2_id ikke findes,
>så vil en INNER JOIN stadigvæk returnere en NULL-værdi (og row'en vil
>stadigvæk ryge ud).

Nu kender jeg godt nok ikke mySql - og hvis den opfører sig som du
beskriver, trækker jeg mig ydmygt tilbage. Men i Access er der altså ingen
forskel - jeg har prøvet præcis det eksempel du giver, og i ingen af
forespørgslerne kommer Hans med. Null-værdien tages ikke med i en INNER
JOIN. Jeg mener at det er standard SQL - men hvis mysql og andre virkelig
laver forskel er det selvfølgelig en anden sag.


--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fidoso.dk)

Lauritz Jensen (17-01-2001)
Kommentar
Fra : Lauritz Jensen


Dato : 17-01-01 18:08

Peter Brodersen wrote:
>
> On 17 Jan 2001 11:56:34 GMT, jens_gy@hotmail.com (Jens Gyldenkærne
> Clausen) wrote:
>
> >>Når jeg skal joine i mysql plejer jeg bare at bruge
> >>WHERE tabel1.kol1_id = tabel2.kol2_id
> >
> >Din syntax svarer helt til INNER JOIN.
>
> Ikke helt. Den væsentlige forskel er, hvis tabel2.kol2_id ikke findes,
> så vil en INNER JOIN stadigvæk returnere en NULL-værdi (og row'en vil
> stadigvæk ryge ud).

Du tænker på outer, left eller right join.

--
Lauritz

Peter Brodersen (17-01-2001)
Kommentar
Fra : Peter Brodersen


Dato : 17-01-01 21:27

On Wed, 17 Jan 2001 18:07:42 +0100, Lauritz Jensen
<lauritz2@hotmail.com> wrote:

>Du tænker på outer, left eller right join.

Jeg tror snarere, problemet var, at jeg ikke tænkte. Beklager - my
bad.

"Jeg var lige stået op, da jeg skrev mit indlæg".


--
- Pede
Professionel nørd

news.sunsite.dk (18-01-2001)
Kommentar
Fra : news.sunsite.dk


Dato : 18-01-01 00:31

.... Ja ja ja ja :)

Men jeg er stadig ikke meget klogere i hvad outer join og alle de andre skal
bruges til...

Kunne I give et eksempel på i hvilke tilfælde man skal bruge hvilke joins?

Pretty please ;)

/Danni



Jens Gyldenkærne Cla~ (18-01-2001)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 18-01-01 14:04

"news.sunsite.dk" <danni@finne.dk> skrev:

>Men jeg er stadig ikke meget klogere i hvad outer join og alle de andre
>skal bruges til...

Har du læst Peters link?
<URL:http://www.cit.teknologisk.dk/brugergrupper/accesserfa/videnbase/Kodee
ksempler/sql/8Select.txt>

>Kunne I give et eksempel på i hvilke tilfælde man skal bruge hvilke
>joins?

I min verden har jeg i 90% af tilfældene kun brug for INNER JOIN.
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fidoso.dk)

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste