Birleşim sorgusu kullanarak birden çok sorguyu tek bir sonuçta bir araya getirme

Birleşim sorgusu kullanarak birden çok sorguyu tek bir sonuçta bir araya getirme

Access veritabanınızda biri müşteri verilerini depolayan, diğeri de sağlayıcılarla ilgili verileri depolayan iki ilişkisiz tablo olduğunu ve her iki tabloda da iletişim bilgileri alanları bulunduğunu varsayalım. Bu iki tablodan gelen iletişim bilgilerini tek bir görünümde görmek isteyebilirsiniz. Bunun için, önce her tablo için seçme sorgusu oluşturup iletişim bilgilerini getirirsiniz ve sonra da bir birleşim sorgusu oluşturarak bu sonuçları birleştirirsiniz.

Not :  Bu makaledeki içerik, Access masaüstü veritabanlarında kullanıma yöneliktir. Access web veritabanlarında veya Access web app'te birleşim sorgusu oluşturamaz veya kullanamazsınız.

Temel seçme sorgularını oluşturma konusunda bilgilerinizi tazelemeniz mi gerekiyor? Bkz. Basit bir seçme sorgusu oluşturma.

İlk olarak, birleşim sorgusu oluşturmak için aşağıdaki birkaç noktayı bilmeniz gerekiyor:

  • Birleşim sorgusunda birleştirdiğiniz seçme sorguları, aynı sıra ile ve aynı ya da uyumlu veri türleri ile, aynı sayıda çıkış alanına sahip olmalıdır. Birleşim sorgusunu çalıştırdığınızda, karşılık gelen alanların her kümesinden gelen veri, tek bir çıkış alanına birleştirilir; böylece sorgu çıkışı, SELECT deyimlerinin her biriyle aynı sayıda alana sahip olur.

  • Birleşim sorguları SQL'ye özgüdür ve bu nedenle doğrudan SQL'de yazılmaları gerekir. Birleşim sorguları da dahil olmak üzere SQL'ye özgü sorguları yazmak için SQL Görünümü'ne geçersiniz.

Adım 1: Seçme sorgularını oluşturma

Not : Bir sorguya birden çok tablo ya da sorgu dahil edebilmenize karşın, bu yordamda seçme sorgularınızın her birinin yalnızca tek bir tablodan gelen veriler içerdiği varsayılmaktadır.

  1. Oluştur sekmesinin Sorgular grubunda Sorgu Tasarımı'nı tıklatın.

  2. Tabloyu Göster iletişim kutusunda, dahil etmek istediğiniz alanları içeren tabloyu çift tıklatın. Tablo, sorgu tasarım penceresine eklenir.

  3. Tabloyu Göster iletişim kutusunu kapatın.

  4. Sorgu tasarım penceresinde, dahil etmek istediğiniz her alanı çift tıklatın.
    Alanları seçerken, diğer seçme sorgularına eklediğiniz aynı sayıda ve aynı sırada alan eklediğinizden emin olun. Alanların veri türlerine dikkat edin ve birleştirmekte olduğunuz diğer sorgulardaki aynı konumda bulunan alanlarla uyumlu veri türlerine sahip olduklarından emin olun. Örneğin, ilk seçme sorgunuzda ilki tarih/saat verileri içeren beş alan varsa, birleştirdiğiniz diğer seçme sorgularının her birinde de ilki tarih/saat verileri içeren beş alan olduğundan emin olun.

  5. İsteğe bağlı olarak, alan kılavuzunun Ölçüt satırına uygun ifadeleri yazarak, alanlarınıza ölçüt ekleyin.

  6. Alanları ve alan ölçütlerini eklemeyi tamamladığınızda, seçme sorgusunu çalıştırıp bu sorgunun çıkışını gözden geçirmeniz gerekir. Tasarım sekmesinin Sonuçlar grubunda Çalıştır'a tıklayın.

  7. Sorguyu Tasarım görünümüne geçirin.

  8. Seçme sorgusunu kaydedin ve açık bırakın.

  9. Bu yordamı, birleştirmek istediğiniz her seçme sorgusu için yineleyin.

Sorguda ölçüt kullanma hakkında daha fazla bilgi için bkz. Sorguya ölçüt uygulama.

Adım 2: Seçme sorgularını birleştirme

Bu adımda, SQL deyimlerini kullanarak birleşim sorgusunu oluşturursunuz. (Daha fazla bilgi için aşağıdaki SQL söz dizimi bölümüne bakın.)

  1. Oluştur sekmesinin Sorgular grubunda Sorgu Tasarımı'nı tıklatın.

  2. Tabloyu Göster iletişim kutusunu kapatın.

  3. Tasarım sekmesinde, Sorgu grubunda, Birleşim'i tıklatın.

Access sorgu tasarımı penceresini gizler ve SQL görünümü nesne sekmesini gösterir. Bu noktada, SQL görünümü nesne sekmesi boştur.

  1. Birleşim sorgusuna birleştirmek istediğiniz ilk seçme sorgusunun sekmesini tıklatın.

  2. Giriş sekmesinde Görünüm> SQL Görünümü'ne tıklayın.

  3. Seçme sorgusunun SQL ifadesini kopyalayın. 1. adımda oluşturmaya başladığınız birleşim sorgusunun sekmesini tıklatın.

  4. Birleşim sorgusunun SQL görünümü nesne sekmesine, seçme sorgusunun SQL deyimini yapıştırın.

  5. Seçme sorgusu SQL ifadesinin sonundaki noktalı virgülü (;) silin.

  6. İmleci bir satır aşağı taşımak için Enter tuşuna basın, ardından yeni satıra UNION yazın.

  7. Birleşim sorgusuna birleştirmek istediğiniz sonraki seçme sorgusunun sekmesini tıklatın.

  8. 5 ila 10 arası adımları, seçme sorgularının SQL deyimlerini birleşim sorgusunun SQL görünümü penceresine kopyalayıp yapıştırıncaya kadar yineleyin. Noktalı virgülü silmeyin ya da son seçme sorgusunun SQL deyiminden sonra bir şey yazmayın.

  9. Tasarım sekmesinin Sonuçlar grubunda Çalıştır'ı tıklatın.

Birleşim sorgunuzun sonuçları Veri Sayfası görünümü görüntülenir.

Sayfanın Başı

Birleşim sorguları kullanmanın ipuçları

  • Hangi satırın hangi tablodan geldiğini ayırt edebilmek için, seçim deyimlerinizin her birine, alan olarak bir metin dizesi ekleyin.

    Örneğin, bir seçim deyimi Ürünler adındaki bir tablodan alanlar alıyorsa ve diğer seçim deyimi de Servisler adındaki bir tablodan alanlar alıyorsa, ilk deyimin sonuna bir alan olarak "Ürün" dizesini ve ikinci deyimin sonuna da "Servis" dizesini ekleyin. Aşağıdaki örnekte gösterildiği gibi, AS anahtar sözcüğünü kullanarak, dizelere bir alan diğer adı da (örneğin "tür") atayabilirsiniz:

    SELECT field1, field2, ... "Product" AS type

    SELECT field1, field2, ... "Service" AS type

    Sorgu çıkışı, satırın Ürünler tablosundan mı, yoksa Servisler tablosundan mı geldiğini gösteren, "tür" adında bir alan içerecektir.

  • Her UNION anahtar sözcüğü, hemen öncesinde gelen ve onu izleyen SELECT deyimlerini birleştirir. Sorgunuzdaki UNION anahtar sözcüklerinin tümü ile değil de bazıları ile ALL anahtar sözcüğünü kullanırsanız, sonuçlar, UNION ALL kullanarak birleştirilen SELECT deyimleri çiftlerinden yinelenen satırlar içerecektir ama, ALL anahtar sözcüğü olmadan UNION kullanarak birleştirilen SELECT deyimlerinden yinelenen satırlar içermeyecektir.

  • Seçme sorgularındaki alanların sayısı, veri türleri ve sırası birbirini tutmalıdır. Bunların birbirini tutmasını sağlamak için, hesaplamalar veya alt sorgular gibi ifadeler kullanabilirsiniz.

    Örneğin, dört karakterli yılın son iki hanesini ayırmak için, Sağ işlevini kullanarak, iki karakterli bir yıl alanı ile dört karakterli bir yıl alanını eşleştirebilirsiniz.

Birleşim sorgusunun sonuçlarını kullanarak yeni bir tablo oluşturma

Önce, birleşim sorgusunu yeni bir seçme sorgusu için giriş olarak kullanın ve sonra da, aşağıdaki adımlarda gösterildiği gibi, bir tablo yapma sorgusunun temeli olarak o seçme sorgusunu kullanın:

  1. Birleşim sorgusu oluşturmak ve kaydetmek.

  2. Oluştur sekmesinin Sorgular grubunda Sorgu Tasarımı'nı tıklatın.

  3. Tabloyu Göster iletişim kutusunda, Sorgular sekmesini tıklatın.

  4. Birleşim sorgunuzu çift tıklatın ve sonra da Tabloyu Göster iletişim kutusunu kapatın.

    Not : İleti Çubuğu'nda bir Güvenlik uyarısı görürseniz, eylem sorguları devre dışı bırakılmış olabilir. Eylem sorgularını etkinleştirmek için, İleti Çubuğu'nda İçeriği Etkinleştir'i tıklatın.

  5. Sorgu tasarım kılavuzunda, birleşim sorgunuzun nesne sekmesinde, yeni bir tablo yapmak üzere birleşim sorgusu alanlarının tümünü kullanmak için, yıldız işaretini (*) çift tıklatın.

  6. Tasarım sekmesinin Sorgu Türü grubunda Tablo Yap'a tıklayın.

  7. Tablo Yap iletişim kutusunda, yeni tablo için bir ad girin.

  8. İsteğe bağlı olarak, tablonun oluşturulacağı farklı bir veritabanı belirleyin.

  9. Tamam'ı tıklatın.

  10. Tasarım sekmesinin Sonuçlar grubunda Çalıştır'a tıklayın.

Tam bir dış birleştirme gerçekleştirmek üzere bir birleşim sorgusu kullanma

Tam bir dış birleşim gerçekleştirmek için, bir birleşim sorgusu kullanabilirsiniz. Tam bir dış birleştirme, birleştirilmiş tablolardan döndürülen satırları sınırlamaz ama birleştirme alanındaki değerlerin temelinde satırları birleştirir.

  1. Tam bir dış birleştirme için kullanmak istediğiniz alanda, bir sol dış birleştirmeye sahip bir sorgu oluşturun.

  2. Giriş sekmesinde, Görünümler grubunda, Görünüm'ü tıklatın ve sonra da SQL Görünümü'nü tıklatın.

  3. SQL kodunu kopyalamak için, Ctrl+C tuşlarına basın.

  4. FROM tümcesinin sonundaki noktalı virgülü silin ve sonra da Enter tuşuna basın.

  5. UNION yazın ve sonra da Enter tuşuna basın.

    Not : Tam bir dış birleştirme gerçekleştirmek için bir birleşim sorgusu kullandığınızda, ALL anahtar sözcüğünü kullanmayın.

  6. 3. adımda kopyaladığınız SQL kodunu yapıştırmak için, Ctrl+V tuşlarına basın.

  7. Yapıştırdığınız kodda, LEFT JOIN'i RIGHT JOIN olarak değiştirin.

  8. İkinci FROM tümcesinin sonundaki noktalı virgülü silin ve sonra da Enter tuşuna basın.

  9. FROM tümcesinde (sol tablo) listelenen ilk tablodaki birleştirme alanının değerini NULL olarak belirleyen bir WHERE tümcesi ekleyin.

    Örneğin FROM tümcesi aşağıdaki gibi ise:

    FROM Products RIGHT JOIN [Order Details] 
    ON Products.ID = [Order Details].[Product ID]

    Aşağıdaki WHERE tümcesini de şu şekilde ekleyebilirsiniz:

    WHERE Products.ID IS NULL

  10. Birleşim sorgusunun sonunu belirtmek için, WHERE tümcesinin sonuna bir noktalı virgül (;) girin.

  11. Tasarım sekmesinin Sonuçlar grubunda Çalıştır'ı tıklatın.
    Birleşim sorgunuzun sonuçları Veri Sayfası görünümünde görüntülenir.

Daha fazla bilgi için bkz. Sorguda veri kaynaklarını birleştirme.

Sayfanın Başı

Birleşim sorgusu için gereksinimler ve SQL sözdizimi

Birleşim sorgusu için bazı gereksinimler

  • Birleşim sorgusunda birleştirdiğiniz seçme sorguları, aynı sıra ile ve aynı ya da uyumlu veri türleri ile, aynı sayıda çıkış alanına sahip olmalıdır. Birleşim sorgusunu çalıştırdığınızda, karşılık gelen alanların her kümesinden gelen veri, tek bir çıkış alanına birleştirilir; böylece sorgu çıkışı, SELECT deyimlerinin her biriyle aynı sayıda alana sahip olur.

    Not : Bir birleşim sorgusunun amacına uygun olarak, Sayı ve Metin veri türleri uyumludur.

  • Birleşim sorguları SQL'ye özgüdür ve bu nedenle doğrudan SQL'de yazılmaları gerekir. Birleşim sorguları da dahil olmak üzere SQL'ye özgü sorguları yazmak için SQL Görünümü'ne geçersiniz.

Bir birleşim sorgusunun SQL sözdizimi

Birleşim sorgusundaki her bir seçme sorgusunun (SELECT deyimi olarak da adlandırılır) şu yan tümceleri vardır:

Yan Tümce

Şunların listesini içerir

SELECT

Almak istediğiniz verileri içeren alanlar.

FROM

Bu alanları içeren tablolar.

İsteğe bağlı WHERE

Bu alanlara ilişkin ölçütler.

SELECT deyimleri, UNION anahtar sözcüğü kullanılarak birleştirilir.

Bir birleşim sorgusunun temel SQL sözdizimi şöyledir:

SELECT field_1[, field_2,…]
FROM table_1[, table_2,…]
UNION [ALL]
SELECT field_a[, field_b,...]
FROM table_a[, table_b,…];

Örneğin, Ürünler adında bir tablonuz ve Servisler adında başka bir tablonuz olduğunu ve her iki tablonun da, ürün ya da servisin adını, fiyatı, mevcut güvence ya da garantiyi ve ürün veya servisi özellikle isteyip istemediğinizi içeren alanlara sahip olduğunu varsayalım. Ürünler tablosu güvence bilgilerini ve Servisler tablosu da garanti bilgilerini saklamasına rağmen, temel bilgi aynıdır (belirli bir ürün ya da servisin bir kalite vaadiyle gelip gelmediği). İki tablodan dört alanı birleştirmek için, aşağıdaki gibi bir birleşim sorgusu kullanabilirsiniz:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services;

Önceki sözdizimi örneğini satır satır inceleyelim:

Sözdizimi

Açıklama

Ek bilgiler

SELECT ad, fiyat, mevcut_güvence, özel_teklif

İlk SELECT yan tümcesi

SELECT yan tümcesini, veri almak istediğiniz alanları gösteren bir tanımlayıcılar listesi izler.

SELECT yan tümcesi en az bir alanı listelemelidir.

Bu SELECT yan tümcesi, ad, fiyat, mevcut_güvence ve özel_teklif alan tanımlayıcılarını listeler.

FROM Ürünler

İlk FROM yan tümcesi

Bir SELECT yan tümcesini bir FROM yan tümcesi izler ve birlikte, temel bir SELECT deyimi oluştururlar.

FROM yan tümcesini, SELECT yan tümcesinde listelenen alanları hangi tabloların içerdiğini belirten bir tanımlayıcılar listesi izler.

FROM yan tümcesi en az bir tabloyu listelemelidir.

Bu FROM yan tümcesi, Ürünler tablo tanımlayıcısını listeler.

UNION ALL

UNION anahtar sözcüğü ve isteğe bağlı ALL anahtar sözcüğü

UNION öncesinde gelen SELECT deyiminin sonuçları, UNION anahtar sözcüğünü izleyen SELECT deyiminin sonuçlarıyla birleştirilir.

ALL anahtar sözcüğünü kullandığınızda, yinelenen satırlar birleşim sorgusu sonuçlarından kaldırılmazlar.

ALL anahtar sözcüğü kullanıldığında, Access yinelenen satırları denetlemek zorunda olmadığından sorgu daha hızlı çalışabilir.

Aşağıdaki koşullardan herhangi bir doğru ise, ALL anahtar sözcüğünü kullanın:

  • Seçme sorgularının herhangi bir yinelenen satır üretmeyeceğinden eminseniz.

  • Sonuçlarınızda yinelenen satırlar olmasının sizin için önemi yoksa.

  • Yinelenen satırları görmek istiyorsanız.

SELECT ad, fiyat, mevcut_garanti, özel_teklif

İkinci SELECT yan tümcesi

Bazı kurallar:

  • İkinci SELECT yan tümcesinin alan sayısı ilk SELECT yan tümcesiyle aynı olmalıdır.

  • Ortak verileri paylaşan alanlar, yan tümcede aynı sırada görünmelidir.

  • Ortak verileri paylaşan alanlarda, aynı veya uyumlu veri türleri bulunmalıdır.

Not : Bir birleşim sorgusunun çıkışındaki alanların adları, ilk SELECT yan tümcesinden alınır. Dolayısıyla, örnekteki "mevcut_güvence" alanından ve "mevcut_garanti" alanından gelen veriler, sorgu çıkışında "mevcut_güvence" olarak adlandırılır.

FROM Servisler

İkinci FROM yan tümcesi

Bir birleşim sorgusunun FROM yan tümcelerindeki tablolarda herhangi bir kısıtlama yoktur. Her FROM yan tümcesinde aynı tabloları kullanan bir birleşim sorgusu oluşturabilirsiniz. FROM yan tümcelerinde farklı sayıda tablonuz olabilir. Örneğimizde, FROM yan tümcelerinin her biri yalnızca tek bir tabloya sahiptir.

Sayfanın Başı

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Office Insider Programına Katılın

Bu bilgi yararlı oldu mu?

Görüşleriniz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×