SELECT F.IDFLATS, O.IDOWNERS, OWF.IDOWNER_FLAT, F.FLATNUMBER, O.FULLNAME, O.MOBIL
FROM
FLATS F
LEFT OUTER JOIN OWNER_FLAT OWF ON (F.IDFLATS = OWF.FKFLAT)
/* LEFT OUTER JOIN OWNERS O ON (O.IDOWNERS = OWF.FKOWNERS)*/ // DataSet je prázdny
/* RIGHT OUTER JOIN OWNERS O ON (O.IDOWNERS = OWF.FKOWNERS)*/ // OK
/* LEFT OUTER JOIN OWNERS O ON (OWF.FKOWNERS = O.IDOWNERS)*/ // DataSet je prázdny
RIGHT OUTER JOIN OWNERS O ON (OWF.FKOWNERS = O.IDOWNERS) // OK
WHERE
O.FKFOCS = 1331
Tak o tom rozdiele medzi LEFT a RIGHT som nevedel! Dosť som toho čítal, ale nikde som na to nenarazil. Pritom to je podstatná informácia.No proto je to taky soucasti kazdeho ucebniho textu SQL napr.
To vysvetľuje aj odporúčanie: vyhýbajte sa RIGHT, a používajte LEFT všade kde sa dá.
Aby ti fungovalo LEFT OUTER JOIN, musel bys vycházet z Owners - z něčeho, kde data jsou.Lebo ak áno, tak Owners je zle. Ale pokračuje ďalej a tam to upresňuje. Takže s tým problém nemám.
To odporúčanie máš na mysli totoNe, to doporuceni, ze se ma pouzivat LEFT a ne RIGHT.
No vsak, proto je to picovina s tim pouzivanim LEFT pred RIGHT. A JF popisuje presne, co je na tech diagramech: vzdy je vysledkem mnozina radku, ktera odpovida pruniku obou mnozin (inner join) a zbyvajici radky z leve nebo prave mnoziny (tabulky).
Pozerám na ten odkaz, ale všade vidím, že obrázok pre RIGHTT je zrkadlový obraz LEFT.
Nič také, čo tu popisuje Fiala.
A
INNER JOIN B ON (A.XX = B.YY) // A - ľavá tabuľka
INNER JOIN B ON (B.XX = A.YY) // B - ľavá tabuľka
Je to naozaj tak?
Je to naozaj tak?Ne. V tom vyrazu plati obvykle komutativni aj. podobne zakony, takze je jedno, jestli napises A.XX=B.XX nebo B.XX=A.XX
A LEFT/RIGHT JOIN B ON () // NA
B LEFT/RIGHT JOIN A ON ()
Dobrá diera vo vedomostiach. Tým pádom úplne ináč vnímam celú túto (a podobné) debatu.
Dobrá diera vo vedomostiach. Tým pádom úplne ináč vnímam celú túto (a podobné) debatu.Jeste je dobre si uvedomit tohle: http://www.sql-tutorial.ru/en/book_explicit_join_operations/page4.html (http://www.sql-tutorial.ru/en/book_explicit_join_operations/page4.html)