person
|
kurs
|
elevKurs
|
laererKurs
|
Equi betyr 'lik', d.v.s at vi foretar en join på likhet.
En equi-join er en type inner-join.
|
=> |
|
||||||
En theta-join er en type inner-join.
I en theta-join tester man på ulikhet eller mengde/størrelse,
og bruker da operatorene >, <, >=, <=, != <>.
|
=> |
|
En natural join er egentlig bare en vanlig equi-join.
|
=> |
|
En cross-join som ikke har noen WHERE kalles også kartesisk produkt.
En cross-join som har en WHERE oppfører seg som en inner-join.
|
=> |
|
Self-join vil si at man lager en join på en og samme tabell
SELECT DISTINCT e1.*
FROM elevKurs e1, elevkurs e2
WHERE e1.kursid = e2.kursid
AND e1.blokk = e2.blokk
AND e1.elevid != e2.elevid;
|
=> |
|
SELECT kursid, blokk, p.*
FROM laererKurs l, person p
WHERE l.laererid *= p.personid;
|
= |
SELECT kursid, blokk, p.*
FROM laererKurs l
LEFT OUTER JOIN person p
ON p.personid = l.laererid;
|
=> |
|
SELECT kursid, blokk, p.*
FROM laererKurs l, person p
WHERE l.laererid =* p.personid;
|
= |
SELECT kursid, blokk, p.*
FROM laererKurs l
RIGHT OUTER JOIN person p
ON p.personid = l.laererid;
|
=> |
|
(SELECT kursid, blokk, p.*
FROM laererKurs l, person p
WHERE l.laererid *= p.personid)
UNION
(SELECT kursid, blokk, p.*
FROM laererKurs l, person p
WHERE l.laererid =* p.personid)
ORDER BY personid, kursid;
|
= |
SELECT kursid, blokk, p.*
FROM laererKurs l
FULL OUTER JOIN person p
ON p.personid = l.laererid;
|
=> |
|
Elin K. Ajer Andreassen, 2004