Sobes.tech
Junior

Ի՞նչ է SQL-ում ձախ միացում (left join):

sobes.tech AI

Պատասխան AI-ից

Լավագույն միացում (LEFT JOIN կամ LEFT OUTER JOIN) SQL-ում վերադարձնում է բոլոր տողերը "ձախ" աղյուսակից և համապատասխան տողերը "աջ" աղյուսակից: Եթե համապատասխանություն չի գտնվել աջ աղյուսակում, աջ աղյուսակի սյունակների արժեքները կլինեն NULL:

  • Սինտաքսիս:

    SELECT սյունակների_ցանկություն
    FROM աղյուսակ1  -- Ձախ աղյուսակ
    LEFT JOIN աղյուսակ2 ON աղյուսակ1.սյունակ = աղյուսակ2.սյունակ;
    
  • Արդյունք:

    • Բոլոր տողերը աղյուսակ1-ից:
    • համապատասխան տողերը աղյուսակ2-ից:
    • Տողեր, որոնք աղյուսակ1-ում են, բայց աղյուսակ2-ում չեն, աղյուսակ2 սյունակները NULL``-ներ կլինեն:
  • Օրինակ:

    Ենթադրենք, ունենք երկու աղյուսակ՝ Orders և Customers: Մենք ուզում ենք ստանալ բոլոր պատվերների ցանկը և հաճախորդների մասին տեղեկությունները, որոնք դրանք կատարել են: Եթե պատվերը չունի հաճախորդ (օրինակ՝ ջնջված), մենք այնուամենայնիվ ուզում ենք տեսնել այդ պատվերը:

    -- Orders աղյուսակ
    -- OrderID | CustomerID | OrderDate
    -- 1       | 101        | 2023-10-26
    -- 2       | 102        | 2023-10-26
    -- 3       | NULL       | 2023-10-27
    
    -- Customers աղյուսակ
    -- CustomerID | CustomerName
    -- 101        | Alice
    -- 102        | Bob
    
    SELECT
        O.OrderID,
        C.CustomerName
    FROM
        Orders AS O
    LEFT JOIN
        Customers AS C ON O.CustomerID = C.CustomerID;
    
    OrderID CustomerName
    1 Alice
    2 Bob
    3 NULL