Tema: Re: MSSQL LEFT JOIN - WTF?
Autorius: Jornada Del Muerto
Data: 2011-11-24 12:57:26
Turetu taspats gautis mssql. Beje as kitaip jungiu biski, stilum:

SELECT * 
FROM 
    T1
INNER/LEFT JOIN 
    T2 On T1.xx = T2.xx 
And T2.xx2 Is Not Null   
And T2.xx3 = 4
And ..... 

O ne i 
Where

    Jei tai kazkas susija su jungiama lenta kishu i join salyga o ne WHERE beje rezultatu kartais gali susilaukt skirtingu taip darant ;) mano nuomuone taip SQL operuoja su mazesniu resultset'u filtravimui is karto... beje su     

    MySQL darau tapati, where tik stovi esminiai dalykai is baziniu lentu pas mane, na labai retai is kitu tik jei tikrai reikia.
    
    Tokie dalykai neturetu skirtis tarp MySQL ar MSSQL nebent patys duomenys skiriasi ar kazkiek gali skirtis kazkokiu salygu sudarymas jei kazka kitaip traktuoja MySQL (gerai nezinau MySQL), visumoj tu ir MySQL gausi jei bus daug irasu joininant rysi su daug. 

JDM.

"NicMC" <jzs@freemail.lt> wrote in message news:jal679$3lu$1@trimpas.omnitel.net...
> Gaila. Daug mieliau tai veikia MySQL. Nes tokiu atveju "INNER JOIN T2 ON 
> T1.F1=T2.F2" yra ne kas kita, kaip "LEFT JOIN T2 ON T1.F1=T2.F2 WHERE 
> T2.F2 IS NOT NULL"
> 
> 
>> SELECT * FROM TABLE1 T1 LEFT JOIN ( -- tipo cia distinct isrenki tik
>> po viena reiksme tam tikro lauko SELECT DISTINCT
>> [laukas_pagal_kuri_norima_kad_nesikartotu] XX FROM TABLE2 T2 ) T2 ON
>> T1.Laukas = T2.XX
> 
> 
> Su sąlyga, kad man reikia BET KOKIOS laukų 2,3,4 ir 5 reikšmės kai 
> laukas 1 lygus kitos lentelės laukui gaunasi ppc:
> 
> SELECT * FROM (
> SELECT F1,
> (SELECT TOP 1 F2 FROM T2 TX WHERE TX.F1=T.F1) F2
> ir t.t.
> FROM (SELECT DISTINCT F1 FROM T2) T)
> 
> Ir tik šitą krakoziabrą prijoinint prie pirmos lentos? mda....