Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Left Join vs Left Outer Join

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: Left Join vs Left Outer Join

Autor: sthruska

14:46:28 12.08.2011

Pozrel som do helpu a vychádza mi takýto výsledok. Ale najprv poznámka - Access môže bežať vo viacerých režimoch. Ja osobne som prešiel na ANSI92, nakoľko ho používam len ako sklad a pristupujem k nemu zvonka.

MS SQL
V príkladoch som žiaden príklad na Full či Outer nenašiel, aj keď to sú vyhradené slová.

SQL
Slovo Outer nepozná. Full som nekontroloval.

Moja skúsenosť je, že ak aj je slovo vyhradené, neznamená to, že sa dá použiť :S
Ďalej záleží na tom ako kvalitnú knihu máš.

Citovat příspěvek

 

Re: Left Join vs Left Outer Join

Autor: Zdeněk Vít

11:47:03 12.08.2011

Dobrý den,
v T-SQL (MS SQL server 2005) jsem zaregistroval rozdíl.
Left Join najde co má, Left Outer Join nenajde přesto, že záznamy v dotyčné tabulce existují.
Má někdo představu proč? Přikládám příklad, který funguje. Pokud přidám "Outer", fungovat přestane.



IF @p_krok = 'ZAS_SES01'
BEGIN
with Zasoby
(
ITEMID_WIT,
Kc_zasoba
)
AS
(
select
ZAS.ITEMID_WIT,
round(sum(ZAS.COSTAMOUNTBALANCE_WIT),2) as Kc_zasoba
from INVENTSUMFORPERIOD_WIT as ZAS
inner join Inventtable as ITEM ON
ITEM.Dataareaid = ZAS.Dataareaid and
ITEM.ItemID = ZAS.ITEMID_WIT
where
ZAS.DataareaID = @p_area and
ZAS.PERIOD_WIT = substring(@p_datum_do,1,4) + substring(@p_datum_do,6,2) and
ITEM.Itemtype = 1 --vyráběná
group by
ZAS.ITEMID_WIT
having
round(sum(ZAS.COSTAMOUNTBALANCE_WIT),2) > 0
)

select
ZAS.ITEMID_WIT as [Položka],
ZAS.Kc_zasoba as [Kč zasoba],
RPOLG.Kc_item as [Kč napočteno],
RKSKG.Kalk_skup as [Kod Kal skup],
RKSKG.Kc_KalkSkup as [Kč kal skup],
ZAS.Kc_zasoba - RPOLG.Kc_item as [Kč rozdíl],
case
when RPOLG.Kc_item <> 0 then round(RKSKG.Kc_KalkSkup * ZAS.Kc_zasoba / RPOLG.Kc_item,2)
else ZAS.Kc_zasoba
end as [Kč kal upr],
RKSKG.Kalk_skup + ' ' +
case RKSKG.Kalk_skup
when '25' then 'VVR'
when '22' then 'TZV'
when '99' then 'Neroz'
else CalcGroup.Name
end as [Kal skup]
from zasoby as ZAS
left join
(--RPOLG
select
RPOL.Polozka_TOP,
sum(RPOL.Kc_cerpani) as Kc_item
from MGI_Temp.dbo.WX_ZAS_Nakl_slozky as RPOL
where
(
(RPOL.transtype = 8 and RPOL.Je_vyrabena = 0) or
(RPOL.transtype = 9 and RPOL.Je_vyrabena = 1) or
(RPOL.transtype = 7 and RPOL.Je_vyrabena = 1)
) and
RPOL.DATAAREAID = @p_area and
RPOL.Uzivatel = @p_user
group by
RPOL.Polozka_TOP
) as RPOLG ON
RPOLG.Polozka_TOP = ZAS.ITEMID_WIT
left join
(--RKSKG
select
RKSK.Polozka_TOP,
RKSK.Kalk_skup,
sum(RKSK.Kc_cerpani) as Kc_KalkSkup
from MGI_Temp.dbo.WX_ZAS_Nakl_slozky as RKSK
where
(
(RKSK.transtype = 8 and RKSK.Je_vyrabena = 0) or
(RKSK.transtype = 9 and RKSK.Je_vyrabena = 1) or
(RKSK.transtype = 7 and RKSK.Je_vyrabena = 1)
) and
RKSK.DATAAREAID = @p_area and
RKSK.Uzivatel = @p_user
group by
RKSK.Polozka_TOP,
RKSK.Kalk_skup
) as RKSKG ON
RKSKG.Polozka_TOP = ZAS.ITEMID_WIT
left join CalcGroup ON
CalcGroup.Dataareaid = 'ALL' and
CalcGroup.CalcGroupId = RKSKG.Kalk_skup
order by
ZAS.ITEMID_WIT,
RKSKG.Kalk_skup

return
END


Prostředí:
Microsoft SQL Server Management Studio 9.00.1399.00
Microsoft Analysis Services Client Tools 2005.090.1399.00
Microsoft Data Access Components (MDAC) 2000.085.1132.00 (xpsp.080413-0852)
Microsoft MSXML 2.6 3.0 4.0 5.0 6.0
Microsoft Internet Explorer 8.0.6001.18702
Microsoft .NET Framework 2.0.50727.3615
Operating System 5.1.2600

Citovat příspěvek

 

Re: Left Join vs Left Outer Join

Autor: 5288

19:03:04 16.02.2009

Můžete si samozřejmě používat co chcete, na funkčnost to vliv nemá, ale z hlediska přehlednosti se to používá takhle:

INNER JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN
FULL OUTER JOIN

Jedno slovo může zachránit půl dne hledání chyby, zvláště když po Vás projekt převezme někdo jiný.

FULL OUTER JOIN je náročná operace a ne každý databázový stroj ji podporuje.

Citovat příspěvek

 

Re: Left Join vs Left Outer Join

Autor: Pavel Stěhule

12:46:07 16.02.2009

OUTER je nepovinne klicove slovo, podobne jako INNER, tzv. vycpavka neboli syntactic sugar. Pouzivat se nemusi, a v fakticky se ani nepouziva. Vyznam je ve zvyrazneni vnejsiho (OUTER) spojeni (JOINu) - at uz se jedna o LEFT OUTER JOIN nebo RIGHT OUTER JOIN.

Pavel

Citovat příspěvek

 

Left Join vs Left Outer Join

Autor: Fanousek

11:15:55 16.02.2009

Dobrý,
koukám do knížky o MS Accessu a autor tady píše, že Left Outer Join lze zkracovat na Left Join.
Je tedy vůbec nějaký rozdíl mezi Left Outer Join a Left Join??? Zdá se mi to nějaké podivné ...
A Ještě jeden dotaz. Píše taky o Full Outer Join (který lze opět zkracovat na Full Join). Ten mi ale v Accessu nejde. Používá ho někdo z vás v Accessu?

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: