Zihni Özgürlük

Inner join ve left join arasındaki farklar

inner join: birleştirme yapılan tablolardaki join koşuluna(ON) uyan satırları getirir.

left join: birleştirme yapılan tablolardan, soldaki tabloyu referans alarak, join koşuluna uymayan satırları da getirir.

Müşteriler tablosu aşağıdaki gibi olsun.

+-----+-----+------+

| musteri_id  | adi |

+-------------+-----+

| 123         |Ali  |

| 124 	      |Veli |

| 125 	      |Ayşe |

+-------------+-----+

Siparişler tablosu ise aşağıdaki gibi olsun.

+------------+------------+------+

| sipari_id  | musteri_id |tutar |

+------------+------------|------+

| 1 	      |123	  |100    |

| 2 	      |124	  |200    |

| 3	      |123	  |300    |

+------------+------------+------|

Inner join'e örnek: sipariş veren müşteriler

->SELECT m1.adi,s.tutar FROM musteriler AS m INNER JOIN siparisler AS s
		ON  m.musteri_id = s.musteri_id

+------+------------+

| adi  | tutar	    |

+------+------------+

| Ali  |100 	    |

| Vali |200	    |

| Ali  |300         |

+------+------------+

Left join'e örnek sipariş vermeyen müşteriler

->SELECT m1.adi,s.tutar FROM musteriler AS m LEFT JOIN siparisler AS s
		ON  m.musteri_id = s.musteri_id WHERE s.tutar is null

+------+------------+

| adi  | tutar	     |

+------+------------+

| Ayşe |NULL 	     |

+------+------------+

Bir Yorum

  1. grafitus diyor ki:

    “m1.adi” değil, “m.adi” olmalı sanırım?

Yorum Yaz