Hans Dorrestijn: "Want, de worstjes van de Hema zijn niet te hard of slap...De Hemaworst, hoera hoera, zit barstens vol met sap.Baby's die nu juichen aan de moederborst...Zouden harder zuigen aan de Hemaworst"
Met een left outer join krijg je aan de linkerkant gewoon alle waarden te zien. Je filter bepaalt vervolgens welke waarden je aan de rechterkant te zien krijgt. Als niet aan de filter voldaan wordt krijg je dus aan de rechterkant een null.
De filter zorgt er natuurlijk voor dat je voor elke waarde aan de linkerkant er maar maximaal 1 waarde terugkomt aan de rechterkant.
De filter zorgt er natuurlijk voor dat je voor elke waarde aan de linkerkant er maar maximaal 1 waarde terugkomt aan de rechterkant.
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
mmm,
ik denk dat ik al wat meer snap.
als ik het goed begrijp is een innerjoin een cartesisch produkt met een selectie(where conditie) er over heen.
Volgens een wiskunde pagina is de left join de innerjoin UNION de linker tabel:
R ∪ (R |X| S)
gevonden op:http://www.absoluteastronomy.com/encyclopedia/r/re/relational_algebra.htm
Nu ben ik nog enigszins verward over het feit dat bovenstaande expressie de set R unioned met een set die nooit UNION compatible kan zijn met set R.
{union compatible betekend dat beide tabellen gelijke kolommen moeten hebben, wanneer je dat niet doet dan is het resultaat van de union ondefinieerbaar)
Moeilijk hoor
ik denk dat ik al wat meer snap.
als ik het goed begrijp is een innerjoin een cartesisch produkt met een selectie(where conditie) er over heen.
Volgens een wiskunde pagina is de left join de innerjoin UNION de linker tabel:
R ∪ (R |X| S)
gevonden op:http://www.absoluteastronomy.com/encyclopedia/r/re/relational_algebra.htm
Nu ben ik nog enigszins verward over het feit dat bovenstaande expressie de set R unioned met een set die nooit UNION compatible kan zijn met set R.
{union compatible betekend dat beide tabellen gelijke kolommen moeten hebben, wanneer je dat niet doet dan is het resultaat van de union ondefinieerbaar)
Moeilijk hoor
Hans Dorrestijn: "Want, de worstjes van de Hema zijn niet te hard of slap...De Hemaworst, hoera hoera, zit barstens vol met sap.Baby's die nu juichen aan de moederborst...Zouden harder zuigen aan de Hemaworst"
Verwijderd
Vergeet niet dat er ook nog projectie wordt uitgevoerd.
Even wat ad-hoc syntax uit m'n mouw schudden:
cr = De kolommen van de JOIN projectie uit R
cs = De kolommen van de JOIN projectie uit S
C = cr U cs, alle kolommen uit je SELECT dus
PX(Q) = De projectie van selectie (query) Q naar de kolommen uit verzameling X, met de conventie dat als een kolom x uit X niet in de kolommen van Q, een NULL waarde wordt teruggegeven op die plek.
Wat er eigenlijk gebeurt is:
Even wat ad-hoc syntax uit m'n mouw schudden:
cr = De kolommen van de JOIN projectie uit R
cs = De kolommen van de JOIN projectie uit S
C = cr U cs, alle kolommen uit je SELECT dus
PX(Q) = De projectie van selectie (query) Q naar de kolommen uit verzameling X, met de conventie dat als een kolom x uit X niet in de kolommen van Q, een NULL waarde wordt teruggegeven op die plek.
Wat er eigenlijk gebeurt is:
Omdat de projectie op beide tabellen hetzelfde is, hebben ze per definitie dezelfde kolommen en zijn dus UNION-compatible.PC(R [X] S) U PC(R)
Thanks!
Ik denk dat ik het nu helemaal snap! Heel erg dank voor het meedenken!
Ik denk dat ik het nu helemaal snap! Heel erg dank voor het meedenken!
Hans Dorrestijn: "Want, de worstjes van de Hema zijn niet te hard of slap...De Hemaworst, hoera hoera, zit barstens vol met sap.Baby's die nu juichen aan de moederborst...Zouden harder zuigen aan de Hemaworst"