logo

MySQL SOL KATIL

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 SOL KATIL

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

MySQL SOL KATIL

Tablo: siparişler

MySQL SOL KATIL

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 SOL KATIL

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 SOL KATIL

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:

MySQL SOL KATIL

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 SOL KATIL

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':

MySQL SOL KATIL

Üç 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
MySQL SOL KATIL

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 SOL KATIL

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:

MySQL SOL KATIL

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:

MySQL SOL KATIL

NOT: İç Birleştirme yan tümcesindeki WHERE ve ON koşulu her zaman eşdeğer sonuçları döndürür.