SEO (Arama Motoru Optimizasyonu) Mikro İnteraktif ÜCRETSİZ - Google Play'den İndirin

SQL Server'da Cross Apply Kullanımı

Inner Join işleminden farklı olarak bağlı iki tabloda sıralama, top n gibi işlemlere izin vermesiyle kolaylık sağlayan tablo birleştirme sorgusunu inceleyelim.

Örneğimizi kategori ve ürün sistemi üzerine inşaa edelim.

Kategoriler Tablosu
CREATE TABLE Kategoriler  (
kategori_ID INT PRIMARY KEY NOT NULL IDENTITY(1,1),
kategori_adi VARCHAR(100)
)

Kategoriler tablosu oluştu. Birkaç kayıt ekleyelim.
Kategoriler Tablosu Verileri
INSERT INTO Kategoriler
(kategori_adi)
VALUES
('Televizyon'),
('Müzik Seti'),
('Laptop'),
('Fritöz'),
('Monitör')

Şimdi de ürünler tablosunu oluşturalım.
Ürünler Tablosu
CREATE TABLE Urunler (
urun_ID INT PRIMARY KEY NOT NULL IDENTITY(1,1),
kategori_ID INT,
urun_adi VARCHAR(100),
fiyat float,
CONSTRAINT FK_Urunler_kategori_ID FOREIGN KEY (kategori_ID) REFERENCES Kategoriler(kategori_ID)
)

Ürünler tablosu oluştu. Birkaç kayıt ekleyelim.
Ürünler Tablosu Verileri
INSERT INTO Urunler
(kategori_ID, urun_adi, fiyat)
VALUES
(1, 'LG TV32-A', 3000),
(1, 'Panasonic TV33-B', 3200),
(1, 'Toshiba TV45-RR', 3700),
(2, 'Pioneer HIFI-5', 5000),
(2, 'Sony MHT-46', 6300),
(2, 'Sharp HY4W', 5100),
(2, 'Yamaha YMH2', 7300),
(3, 'ASUS LPT-2', 11000),
(3, 'LENOVO LNV11', 14000),
(3, 'MSI KTN1', 19000),
(4, 'Philips FRT1', 3300),
(4, 'Xiaomi FRTA', 3800),
(4, 'Electrolux EAT', 3200),
(5, 'Acer MNT1', 1450),
(5, 'AOC MNTR', 1510),
(5, 'SAMSUNG 44MNTR', 2100)

Tablolar ve içerisindeki verileri hazırladık. Şimdi tabloları görüntüleyelim.
Kategoriler ve Ürünler Tablosu
SQL Server'da Cross Apply Kullanımı

Her kategoriye ait fiyatı en yüksek ilk ürünü getirelim

SQL Sorgusu
SELECT K.kategori_ID, K.kategori_adi, U.urun_adi, U.fiyat FROM Kategoriler AS K
CROSS APPLY
(
   SELECT TOP 1 * FROM Urunler WHERE kategori_ID = K.kategori_ID
   ORDER BY fiyat DESC
) AS U

SQL Sorgu Sonucu
SQL Server'da Cross Apply Kullanımı

Her kategoriye ait fiyatı en yüksek 2 ürünü getirelim

SQL Sorgusu
SELECT K.kategori_ID, K.kategori_adi, U.urun_adi, U.fiyat FROM Kategoriler AS K
CROSS APPLY
(
   SELECT TOP 2 * FROM Urunler WHERE kategori_ID = K.kategori_ID
   ORDER BY fiyat DESC
) AS U

SQL Sorgu Sonucu
SQL Server'da Cross Apply Kullanımı

Her kategoriye ait fiyatı en yüksek ve en düşük 2 ürünü getirelim

SQL Sorgusu
SELECT K.kategori_ID, K.kategori_adi, U.urun_adi, U.fiyat, U.bilgi FROM Kategoriler AS K
CROSS APPLY
(
   SELECT TOP 1 *, 'Fiyat Yüksek Olan' bilgi FROM Urunler WHERE kategori_ID = K.kategori_ID ORDER BY fiyat DESC
   UNION ALL
   SELECT TOP 1 *, 'Fiyat Düşük Olan' bilgi FROM Urunler WHERE kategori_ID = K.kategori_ID ORDER BY fiyat ASC
) AS U

Sorgu sonucunda her kategorideki en düşük ve en yüksek fiyatlı ürünleri görüntülemiş olacağız.
Örnek
SQL Server'da Cross Apply Kullanımı

Yorumlar

Yorum Yaz

Avatar

REKLAM

DDos Koruma, Botnet Koruma, Layer 7 Saldırı koruması, Sanal sunucu, Vds sunucu

REKLAM

En Yeni Çizgi Filmler, Masallar ve Etkinlikler

REKLAM

SEO-Arama Motoru Optimizasyonu Uygulaması

REKLAM

Hayvan Sesleri Uygulaması

REKLAM

Çocuk Etkinlikleri Uygulaması

EN

  • Popüler
  • Yeni
  • Son Yorum