MySQL'deki Sol Birleştirme, birden fazla tablodaki kayıtları sorgulamak için kullanılır. Bu yan tümce, FROM anahtar sözcüğünden hemen sonra gelen bir SELECT ifadesiyle kullanılabilen Inner join yan tümcesine benzer. Left join yan tümcesini kullandığımızda, ikinci (sağ) tablodan eşleşen kayıt bulunmasa bile, ilk (sol) tablodaki tüm kayıtları döndürür. Sağdaki tablodan herhangi bir eşleşme kaydı bulamazsa null değerini döndürür.
Başka bir deyişle, Left join yan tümcesi, sol tablodaki tüm satırları ve sağ tablodaki eşleşen kayıtları döndürür veya eşleşen kayıt bulunamazsa Null değerini döndürür. Bu Birleştirme aynı zamanda bir olarak da adlandırılabilir. Sol dış katılma cümle. Dolayısıyla, Outer, Left join ile kullanılacak isteğe bağlı anahtar kelimedir.
Bunu, Sol Birleştirme'nin sol taraftaki tablodaki tüm kayıtları ve yalnızca sağ taraftaki tablodaki eşleşen kayıtları döndürdüğü aşağıdaki görsel temsille anlayabiliriz:
MySQL LEFT JOIN Söz Dizimi
Aşağıdaki sözdizimi, iki veya daha fazla tabloyu birleştirmek için Sol Birleştirme yan tümcesini açıklar:
SELECT columns FROM table1 LEFT [OUTER] JOIN table2 ON Join_Condition;
Yukarıdaki sözdiziminde, tablo 1 sol taraftaki masadır ve Tablo 2 sağ taraftaki masadır. Bu cümle, belirtilene göre tablo1'deki tüm kayıtları ve tablo2'deki eşleşen kayıtları döndürür. katılma koşulu .
MySQL LEFT JOIN Örneği
Left join veya Left Outer join cümleciklerinin işleyişini anlamak için bazı örnekler alalım:
İki tabloyu birleştirmek için LEFT JOIN yan tümcesi
Burada iki tablo oluşturacağız' müşterilerin Ve ' emirler' aşağıdaki verileri içerir:
Tablo: müşteriler
Tablo: siparişler
Her iki tablodan da kayıtları seçmek için aşağıdaki sorguyu yürütün:
Linux'ta zip komutu
SELECT customers.customer_id, cust_name, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id;
Sorgu başarıyla yürütüldükten sonra aşağıdaki çıktıyı verecektir:
MySQL LEFT JOIN, USING Maddesi ile
Müşteriler ve siparişler tablosu aynı sütun adına sahiptir; müşteri_kimliği. Bu durumda kayıtlara erişmek için MySQL Left join USING deyimiyle birlikte de kullanılabilir. Aşağıdaki ifade, USING anahtar sözcüğüyle Left join yan tümcesini kullanarak müşteri kimliğini, müşteri adını, mesleği, fiyatı ve tarihi döndürür.
SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id);
Yukarıdaki ifade aşağıdaki çıktıyı verecektir:
MySQL LEFT JOIN, Group By Clause ile
Sol Birleştirme, GROUP BY deyimiyle de kullanılabilir. Aşağıdaki ifade, GROUP BY deyimiyle birlikte Sol Üyelik deyimini kullanarak müşteri kimliğini, müşteri adını, niteliğini, fiyatını ve tarihini döndürür.
SELECT customers.customer_id, cust_name, qualification, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id GROUP BY price;
Yukarıdaki ifade aşağıdaki çıktıyı verecektir:
WHERE Cümlesi ile LEFT JOIN
WHERE deyimi geri dönmek için kullanılır. filtre tablodan çıkan sonuç. Aşağıdaki örnek, bunu Left join yan tümcesiyle göstermektedir:
SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price>2500;
Bu ifade aşağıdaki sonucu verir:
MySQL LEFT JOIN Çoklu Tablolar
Zaten ' adında iki tablo oluşturduk müşterilerin Ve ' emirler' . Bir tablo daha oluşturalım ve adını '' olarak koyalım. aşağıdaki verileri içeren kişiler':
Üç tablodaki müşterileri, siparişleri ve kişileri birleştirmek için aşağıdaki ifadeyi yürütün:
SELECT customers.customer_id, cust_name, order_id, price, cellphone FROM customers LEFT JOIN contacts ON customer_id = contact_id LEFT JOIN orders ON customers.customer_id = orders.customer_id ORDER BY income;
Yukarıdaki sorgu başarıyla yürütüldükten sonra aşağıdaki çıktıyı verecektir:
c'deki stdin
Eşsiz kayıtlar elde etmek için LEFT JOIN yan tümcesinin kullanılması
LEFT JOIN deyimi, başka bir tablodan eşleşen herhangi bir veri satırı içermeyen tablodaki kayıtları almak istediğimizde böyle bir durumda da kullanışlıdır.
Bunu, cep telefonu numarası olmayan bir müşteriyi bulmak için LEFT JOIN ifadesini kullanan aşağıdaki örnekle anlayabiliriz:
SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ;
Yukarıdaki ifade aşağıdaki çıktıyı döndürür:
MySQL LEFT JOIN'de WHERE ve ON cümlesi arasındaki fark
LEFT join'de WHERE ve ON koşulu farklı bir sonuç verir. Aralarındaki farkları anlamak için aşağıdaki sorguları görebiliriz:
NEREDE Maddesi
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price=2500;
Dönen aşağıdaki çıktıyı verecektir:
AÇIK Maddesi
SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500;
Aşağıdaki çıktıyı verecektir: