COMPUTER ENGINEER

Örneklere git
Blog
SQL Server / T-SQL6 dk çalışma
19/ 65

İlişkiler ve JOIN

INNER JOIN ve doğru eşleştirme

İlişkileri kullanarak veriyi birleştir.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

INNER JOIN yalnız eşleşen satır çiftlerini döndürür. ON, hangi anahtarların ilişkiyi kurduğunu belirtir. Bir müşterinin üç siparişi varsa müşteri kaydı sonuçta üç satırda görünür; bu bir kopyalama hatası değil, bir-çok ilişkinin sonucudur.

Tablo takma adları aynı isimdeki sütunları açıkça ayırır. Önce ilişki anahtarını, sonra sonuç grain’ini belirle. Müşteri başına bir satır istiyorsan siparişleri ayrıca grupla; JOIN’in bunu otomatik yapmasını bekleme.

JOIN koşulunda aynı isimli sütunları otomatik eşitleme: ProductId ile CustomerId ikisi de integer olabilir ama farklı varlıkları temsil eder. Anahtarların iş anlamını kontrol et. Testte eşleşen ve eşleşmeyen kayıtların sayısını ayrı ayrı doğrula.

NERESİNDE KULLANIRSIN?

Siparişleri müşteri bilgisi veya kalemleri ürün adıyla göstermek için.

SIK YAPILAN HATA

ON koşulunu eksik bırakmak veya çoğalmayı anlamadan DISTINCT eklemek.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

T-SQL / SQL Server 2019+
SELECT o.OrderId, c.FullName FROM lab.SalesOrder AS o
INNER JOIN lab.Customer AS c ON c.CustomerId = o.CustomerId ORDER BY o.OrderId;

12 sipariş satırı döner; her siparişin geçerli bir müşterisi vardır.

Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.

02 / SIRA SENDE

Önce kendin dene.

101 numaralı siparişin müşterisini ve ürün adlarını birlikte getir.

Çözümü ve açıklamasını göster
Açıklamalı çözüm
SELECT c.FullName, p.ProductName FROM lab.SalesOrder AS o JOIN lab.Customer AS c ON c.CustomerId = o.CustomerId JOIN lab.OrderItem AS i ON i.OrderId = o.OrderId JOIN lab.Product AS p ON p.ProductId = i.ProductId WHERE o.OrderId = 101;

Ada iki satırda görünür, çünkü siparişte iki ürün kalemi vardır.