PostgreSQL INNER JOIN

PostgreSQL INNER JOIN yan tümcesine giriş

Bir ilişki veritabanında, veriler tipik olarak birden fazla tabloda dağıtılır. Tam verileri seçmek için genellikle birden çok tablodan veri sorgulamanız gerekir.

Bu öğreticide, INNER JOINyan tümceyi kullanarak birden çok tablodaki verilerin nasıl birleştirileceğine odaklanıyoruz .

A ve B tablonuz olduğunu varsayalım. A tablosu, değeri B tablosunun fka sütunundaki değerlerle eşleşen bir pka sütununa sahiptir.

PostgreSQL INNER JOIN

Her iki tablodan da veri seçmek için INNER JOINifadedeki yan tümceyi SELECTaşağıdaki gibi kullanırsınız:


 
 
SELECT pka, c1, pkb, c2 FROM A INNER JOIN B ON pka = fka;

Kod dili: SQL (Yapılandırılmış Sorgu Dili) ( sql )

Tabloyu katılmak için Atabloyla B, şu adımları izleyin:

  • İlk olarak, SELECTyan tümcede veri seçmek istediğiniz her iki tablodan sütunları belirtin .
  • İkincisi, ana tablo ie, tablo belirtmek  A içinde FROMmaddesi.
  • Üçüncüsü, yan tümcede ikinci tabloyu (tablo B) belirtin INNER JOINve ONanahtar kelimeden sonra bir birleştirme koşulu sağlayın .

INNER JOINİşler nasıl .

Tablodaki her satır için Aiç birleştirme, pka sütunundaki değeri tablodaki her satırın fka sütunundaki değerle karşılaştırır B:

  • Bu değerler eşitse, iç birleştirme her iki tablonun tüm sütunlarını içeren yeni bir satır oluşturur ve bunu sonuç kümesine ekler.
  • Bu değerlerin eşit olmaması durumunda, iç birleştirme onları yok sayar ve bir sonraki satıra geçer.

Aşağıdaki Venn şeması, INNER JOIN yan tümcenin nasıl çalıştığını gösterir.

PostgreSQL Join - Inner Join

Çoğu zaman, katılmak istediğiniz tablolar aynı ada sahip sütunlara sahip olacaktır, örneğin, idsütun benzeri customer_id.

Bir sorguda farklı tablolardan aynı ada sahip sütunlara başvurursanız hata alırsınız. Hatayı önlemek için, aşağıdaki sözdizimini kullanarak bu sütunları tam olarak nitelendirmeniz gerekir:


 
 
table_name.column_name

Kod dili: CSS ( css )

Pratikte, sorguyu daha okunabilir hale getirmek için birleştirilmiş tablolara kısa adlar atamak için tablo takma adlarını kullanacaksınız.

PostgreSQL INNER JOIN örnekleri

Cümlenin kullanımına birkaç örnek verelim INNER JOIN.

1) İki tabloyu birleştirmek için PostgreSQL INNER JOIN'i kullanma

Örnek veritabanındakicustomer ve paymenttablolarına bir göz atalım .

müşteri ve ödeme tabloları

Bu tablolarda müşteri ödeme yaptığında paymenttabloya yeni bir satır eklenir .

Her müşterinin sıfır veya birçok ödemesi olabilir. Ancak her ödeme tek bir müşteriye aittir. customer_idKolon iki tablo arasında ilişki kurar.

Aşağıdaki ifade INNER JOIN, her iki tablodan da veri seçmek için yan tümceyi kullanır :


 
 
SELECT customer.customer_id, first_name, last_name, amount, payment_date FROM customer INNER JOIN payment ON payment.customer_id = customer.customer_id ORDER BY payment_date;

Kod dili: SQL (Yapılandırılmış Sorgu Dili) ( sql )

PostgreSQL INNER JOIN

Aşağıdaki sorgu aynı sonucu döndürür. Ancak, tablo takma adlarını kullanır:


 
 
SELECT c.customer_id, first_name, last_name, email, amount, payment_date FROM customer c INNER JOIN payment p ON p.customer_id = c.customer_id WHERE c.customer_id = 2;

Kod dili: SQL (Yapılandırılmış Sorgu Dili) ( sql )

Her iki tablo da aynı customer_idsütuna sahip olduğundan USINGsözdizimini kullanabilirsiniz :


 
 
SELECT customer_id, first_name, last_name, amount, payment_date FROM customer INNER JOIN payment USING(customer_id) ORDER BY payment_date;

Kod dili: SQL (Yapılandırılmış Sorgu Dili) ( sql )

2) Üç tabloyu birleştirmek için PostgreSQL INNER JOIN'i kullanma

Aşağıdaki diyagram, üç tablo arasındaki ilişkiyi gösterir: staff, payment, ve customer.

  • Her personel sıfır veya çok sayıda ödeme yapar. Ve her ödeme tek bir personel tarafından işlenir.
  • Her müşteri sıfır veya çok ödeme yaptı. Her ödeme bir müşteri tarafından yapılır.
PostgreSQL INNER JOIN

Üç tabloyu birleştirmek için, ikinci INNER JOINyan tümceyi ilk INNER JOINyan tümceden sonra aşağıdaki sorgu olarak yerleştirirsiniz:


 
 
SELECT c.customer_id, c.first_name customer_first_name, c.last_name customer_last_name, s.first_name staff_first_name, s.last_name staff_last_name, amount, payment_date FROM customer c INNER JOIN payment p ON p.customer_id = c.customer_id INNER JOIN staff s ON p.staff_id = s.staff_id ORDER BY payment_date;

Kod dili: SQL (Yapılandırılmış Sorgu Dili) ( sql )

PostgreSQL INNER JOIN

Üçten fazla tabloyu birleştirmek için aynı tekniği uygularsınız.

 

Kaynak

Yorumunuzu Ekleyin


Yükleniyor...
Yükleniyor...