Sobes.tech
Junior

Τι είναι η αριστερή σύνδεση (left join) σε SQL;

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