sql >> データベース >  >> RDS >> Sqlserver

t-sqlの左結合が機能しないのはなぜですか?

    その理由は、右側のテーブルをWHEREに含めているためです。 句。これをONに移動する必要があります LEFT JOINの条件 :

    Select    P.appId, S.stepId, S.section, P.start
    From      #appSteps    S   With (NoLock)
    Left Join #appProgress P   On  S.stepId = P.stepId 
                               And P.appId = 101
    Where     S.section Is Not Null
    

    これを行う理由は、WHERE 句はに評価されます LEFT JOIN 、次にNULLを除外します LEFT JOINの結果 。

    LEFT JOINの右側のテーブルを含む (またはRIGHT JOINの左側のテーブル )WHERE 句は、OUTER JOINを効果的に変換します INNER JOINに 。




    1. T-SQL動的ピボット

    2. SQL Server(T-SQL)で現在のログインIDを取得する

    3. LAST_DAY()がMariaDBでどのように機能するか

    4. MySQL、MariaDB、PostgreSQL、MongoDB管理の水準を引き上げる