Microsoft Query 'de birleşimlerin kullanımının açıklaması

Özet

Bu makalede, Microsoft Query 'de birleşimler açıklanır. Birleştirme, veritabanlarıyla birlikte kullanarak iki tablo arasındaki ilişkileri tanımlama ve göstermeye yönelik bir yöntemdir. Microsoft Query 'de çeşitli birleşim türleri oluşturabilir ve düzenleyebilirsiniz. Birçok durumda, Microsoft Query Sorgunuzdaki tablolara sizin için katılır. Birleşimler, tablo bölmesindeki tabloları bağlayan çizgilerle temsil edilir. Bu makaledeki konular şunlardır: What Is a Join? Inner Joins SQL Statements Outer Joins Subtract Joins Full Outer Joins Self Joins Equi-Joins Natural Joins Cartesian Products

Ek Bilgi

Katılma nedir?

Birleştirme, iki tablonun ortak olan ve yeni bir sanal tablo oluşturarak (gerçek bir tablo olarak kaydedilebilen) bir alana göre birleştirildiği iki tablo arasındaki bağlantıdır. Örneğin, aşağıdaki iki tabloyla birlikte: Color_Table: Join_Field Color_Field 1 Red 2 Blue 3 Green Pattern_Table: Join_Field Pattern_Field 2 Striped 3 Checkered 4 Polka-Dot basit birleşim şuna benzer: Join_Field Color_Field Pattern_Field 2 Blue Striped 3 Green Checkered Sonuç tablosu yalnızca Join_Field alanındaki yalnızca 2 ve 3 kayıtlarını içerir çünkü bunlar hem Color_Table hem de Pattern_Table olan tek kayıtlardır. Bir birleşimin pratik bir örneği, ürünlerin ürünler ve üreticiler listesi; Ürünler tablosu ve satıcı tablosu bir ürün KIMLIĞI alanına katılabilir.

Iç birleşim

Önceki örnekteki birleşim, iç birleşim olarak bilinen birleşim türüdür. Genellikle tablolardaki alanların yalnızca bir kısmını kullanmak istiyorsunuz. Örneğin, yukarıdaki gibi gerçek bir Inner birleşimde, Join_Field dışlamak, böylece birleşim şöyle görünür: Color_Field Pattern_Field Blue Striped Green Checkered Microsoft Query 'de, iç birleşimler varsayılan birleşim türüdür (daha fazla bilgi için, "Microsoft Query Kullanıcı Kılavuzu" sürüm 1,0) 105 konusuna bakın.

SQL deyimi

Yapılandırılmış sorgu dili (SQL) SELECT deyimi, birleşim oluştururken kullanabileceğiniz bir makro türüdür. SQL 'in Microsoft Excel 'in diğer makro dillerinden (Visual Basic for Applications ve Excel 4,0 makro dili) çok farklı olduğuna dikkat edin. Microsoft Query 'de kolayca birleştirmeler oluşturmak için SQL 'in anlaşılması gerekmez. Her birleşimin kendisiyle ilişkilendirilmiş bir SELECT ifadesi vardır. Microsoft Query 'de herhangi bir birleşimin SELECT deyimini, araç çubuğundaki "SQL" düğmesine tıklayarak görüntüleyebilirsiniz. Microsoft Excel 'in makro kaydedicisi 'nde olduğu gibi, SELECT deyimini kaydetmek için Query 'yi kullanabilirsiniz. Microsoft Excel 'in makro kaydedicisinin aksine, SELECT deyimi Kaydedicisi her zaman açıktır ve kapatılamaz. SELECT deyiminin, yukarıdaki iç birleşim için Microsoft Query 'de nasıl görüneceğinin burada verilmiştir: SELECT Color_Table.Color_Field, Pattern_Table.Pattern_Field FROM `c:\database`.Color_Table, `c:\database`.Pattern_Table WHERE Color_Table.Join_Field = Pattern_Table.Join_Field Bir Microsoft Access veritabanının dosya adı uzantısı olan ' C:\veritabanı ' veritabanı adını kullandığımızda, tek dosyada birden çok tablo olabilir. DBASE, Paradox ve FoxPro gibi bazı veritabanlarında, her tablo kendi dosyasına sahip olmalıdır. Bu durumlarda, tablo adı her zaman uzantı olmadan dosya adıyla aynı olduğundan, SQL söz dizimi gereksiz görünebilir. SQL sözdizimi, sorgulama motorları arasında değişir; Örneğin, Microsoft Access 'te yukarıdaki örnekteki sorgu şuna benzer: SELECT Color_Table.[Color_Field], Pattern_Table.Pattern_Field FROM Pattern_Table INNER JOIN Color_Table ON Pattern_Table.[Join_Field] = Color_Table.[Join_Field]; Tablo bir Microsoft Access. mdb dosyasında olduğundan Microsoft Access 'te tablonun yolu kullanılmaz. Bir dış tablo eklenmiş ve sorguda kullanılan olsa bile, Microsoft Access SQL deyimi dış tablonun yolunu görüntülemez.

Dış birleştirme

Bir başka birleşim türü dış birleşim olarak adlandırılır. Dış birleşmeyle, bir tablodan tüm kayıtları ve yalnızca ilk tablodan eşleşen değerler içeren diğer tablodaki kayıtları alırsınız. Bu, alan girdilerinden bazılarının boş kalmasını sağlayabilir veya "boş". Birleştirilecek herhangi iki tablo için, iki olası dış birleşim vardır: "sol dış birleştirme" ve "sağ dış birleştirme" (Bu nedenle, genellikle tabloları yan yana görüntülerdi. Bir örnekte önceki iki tabloyu kullanarak, aşağıdakiler olası iki dış birleşimden biridir: Join_Field Color_Field Pattern_Field 1 Red (NULL) 2 Blue Striped 3 Green Checkered Diğer olası birleşim aşağıdaki gibidir: Join_Field Color_Field Pattern_Field 2 Blue Striped 3 Green Checkered 4 (NULL) Polka-Dot Not: bir birleşimde, verileri görüntülerken "NULL" sözcüğünü görmezsiniz; birleştirmelerde çalışırken "NULL" anahtar sözcüğünü kullanın. Microsoft Query 'de, her iki tür dış birleşim de fare kullanılarak kolayca oluşturulabilir (Bu yordamla ilgili daha fazla bilgi için 1,0 112, Aşağıdaki örnek, SQL deyiminin Dış birleştirmenin ikinci örneğini nasıl arayacağını aşağıda görebilirsiniz: SELECT Color_Table.Color_Field, Pattern_Table.Pattern_Field FROM {oj `c:\database`.Color_Table LEFT OUTER JOIN `c:\database`.Pattern_Table ON Color_Table.Join_Field = Pattern_Table.Join_Field} Dış birleşim için pratik bir örnek oluşturmak için, satılan ürünlerin satılmadığı ancak satılmadığı ürünlerin satış rakamlarını içeren bir şirket ürünleri listesi oluşturun. Bunu yapmak için bir ürün KIMLIĞI alanı kullanarak bir Ürünler tablosuna ve satış tablosuna katılabilirsiniz.

Birleştirme birleştirme

Üçüncü birleşim türü çıkarma birleştirmedir. Çıkarma birleşimi, Dış birleşimin tersidir; YALNıZCA bir tablodaki, diğer tablodaki hiçbir kayıtla eşleşmeyen kayıtları içerir. Dış birleşimler gibi, birleştirmek istediğiniz iki tablo için iki olası çıkarma birleşimi vardır; Ancak, genellikle "sol çıkarma birleşimi" veya "sağ çıkarma birleşimi" olarak anırlar. Bir çıkarma birleşimi normalde tablolardan yalnızca birinden gelen alanları döndürür, çünkü tanım nedeniyle diğer tablonun alanları yalnızca NULL değerler döndürür. Aşağıda tek bir olası çıkarma birleşimi verilmiştir: join_Field Color_Field 1 Red diğeri de diğer: Join_Field Pattern_Field 4 Polka-Dot Microsoft Query 'de, ilk önce dış birleşim oluşturularak bir çıkarma birleşimi oluşturulur ve ardından uygun bir alanda (Pattern_Field- Tablolar arasında eşleşen kayıtları dışlamak için ikinci örnekte Color_Field. Aşağıdaki, SQL deyiminin yukarıdaki ilk çıkarma katılımı arayacağını aşağıda görebilirsiniz: SELECT Color_Table.Join_Field, Color_Table.Color_Field FROM {oj `c:\database`.Color_Table LEFT OUTER JOIN `c:\database`.Pattern_Table ON Color_Table.Join_Field = Pattern_Table.Join_Field} WHERE (Pattern_Table.Pattern_Field Is Null) Çıkarma birleşimi için pratik bir örnek oluşturmak için, yakın zamanda sipariş edilmiş müşterilerin bir listesi. Bunu yapmak için, bir sipariş KIMLIĞI alanı kullanarak bir müşteri tablosuna ve Siparişler tablosuna katılabilirsiniz.

Tam dış birleştirme

Dördüncü birleşim türü tam dış birleşmedir. Tam dış birleştirme, kendi kapanış birleştirmelerini içeren Dış birleşimin birleşimidir. Tam dış birleştirme iki tablodaki tüm kayıtları içerir ve iki tablo arasında yaygın olan bu kayıtları birleştirir. Tam dış birleştirme aşağıdaki gibidir: Join_Field Color_Field Pattern_Field 1 Red (NULL) 2 Blue Striped 3 Green Checkered 4 (NULL) Polka-Dot Microsoft Query 'de tam bir dış birleşim, OUTER JOIN 'in SELECT deyimi ve Join 'in SELECT deyimi (yukarıya bakın) arasındaki BIRLEŞIM işleci kendi satırına eklenerek oluşturulur. Microsoft Query 'de tam bir dış birleşim oluşturmak için, ilgili SQL cümlesini oluşturmak için aşağıdaki adımları kullanın:

  1. Dış birleşim oluşturun, Dosya menüsünde Yeni 'ye tıklayın ve bir çıkarma birleşimi oluşturun.

  2. Birleştirmenin SQL 'yi kopyalayın.

  3. Dış birleşime geçin, Dış birleşimin SQL deyiminin altındaki kendi satırına BIRLEŞIM sözcüğünü yazın, birleşimin çıkarma SQL 'sini BIRLEŞIMIN altına yapıştırın ve birleştirme penceresinin çıkart penceresini kapatın.

Not Join_Field değeri 4 ' ün üzerinde olduğu kayıt Pattern_Table tablosunda Join_Field, aşağıdaki tablonun sonuçları "4" değerini kaçırdığından elde edilir. Aşağıdaki SQL cümlesinde, Pattern_Table. John_Field alanını seçin. Join_Field Color_Field Pattern_Field (NULL) Polka-Dot 1 Red (NULL) 2 Blue Striped 3 Green Checkered Bu, SQL 'in yukarıdaki tam dış birleştirmeyi nasıl arayacağını (UNıON işlecinin altındaki komutlar yapıştırılır): SELECT Color_Table.Join_Field, Color_Table.Color_Field, Pattern_Table.Pattern_Field FROM {oj `C:\database`.Pattern_Table LEFT OUTER JOIN `C:\database`.Color_Table ON Color_Table.Join_Field = Pattern_Table.Join_Field} UNION SELECT Color_Table.Join_Field, Color_Table.Color_Field, Pattern_Table.Pattern_Field FROM {oj `C:\database`.Color_Table LEFT OUTER JOIN `C:\database`.Pattern_Table ON Color_Table.Join_Field = Pattern_Table.Join_Field} WHERE (Color_Table.Color_Field Is Null) or(Pattern_Table.Pattern_Field Is Null) Tam dış birleşim için pratik bir örnek oluşturmak için, faks numaraları (yalnızca ilk listede olan) ve Internet e-posta adları (yalnızca ikinci listede bulunan) gibi farklı bölümler tarafından kullanılan örtüşen müşteri listelerini birleştirin. Her bölüm, tam, birleştirilmiş listesi kullanılabilir durumdayken, kısmi listesini kullanmaya devam edebilir. Müşteri KIMLIĞI alanına katılabilir.

Kendisiyle birleşme

Beşinci birleşim türü kendisiyle birleşmedir. Kendisiyle birleşme, tablodaki bir alanın aynı tablonun bir kopyasında farklı bir alanla eşleştiği bir bağlantıdır. Bu örnek tabloyu kullanarak: Table_Three Employee_ID Employee_Name Reports_To 1 Bob 3 2 Sue (NULL) 3 Jim 2 4 Jane 3 ve bir kopyasını aşağıdaki gibi yapın: Table_Three_01 Employee_ID Employee_Name Reports_To 1 Bob 3 2 Sue (NULL) 3 Jim 2 4 Jane 3 Kendi kendine birleşim, gözetmen adlarıyla çalışan adlarının listesini oluşturmak için kullanılabilir. Table_Three Employee_ID Table_Three_01 Reports_To ile birleştirilir. İlk olarak şöyle görünebilir: Employee_Name Employee_Name Bob Jim Sue (NULL) Jim Sue Jane Jim Ancak, her iki alanda da aynı alan adı olması kafa karıştırıcı olduğundan, alan adlarından birini aşağıdaki gibi değiştirin: Employee_Name Supervisor Bob Jim Sue (NULL) Jim Sue Jane Jim Bu, SQL 'in yukarıdaki kendisiyle birleşme işlemini nasıl arayacağını aşağıda açıklamaktadır: SELECT table_three.Employee_Name, table_three_01.Employee_Name 'Supervisor' FROM `c:\database`.table_three, `c:\database`.table_three_01 WHERE table_three.Employee_ID = table_three_01.Reports_To Verileri Microsoft Excel 'e döndürdüğünüzde, Microsoft Query 'de alanı yeniden adlandırmaya gerek yoktur. Bu doğrudur çünkü Microsoft Excel özgün alan adını kullanır. Bu sorun hakkında daha fazla bilgi edinmek için, lütfen Microsoft Bilgi Bankası 'ndaki aşağıdaki makaleye bakın: 121551 : XL5: MSQuery 'de sütun adı yerine, Excel 'e döndürülen alan, bir Microsoft Excel makrosunun, döndürülen veriler her yenilendiğinde sütun adını değiştirmeli (PivotTable 'daki verileri döndürmediğiniz sürece)

Eş birleşim ve doğal birleştirme

Neredeyse tüm birleşimler, şimdiye kadar verilen tüm örnekler dahil, eşlere ve doğal birleşimlerdir. Bu şartların anlamları, Microsoft Query 'nin ortalama kullanıcısına biraz anlam verebilir, ancak sonraki iki paragraf, bu koşulların koşullarını merak etmeye çalışır. Eşim birleşim, birleştirme alanlarının her iki tabloda da eşleşen değerler içerip içermediğini temel alarak kayıtların alındığı bir birleştirmedir. Bu, birleşim tanımı gibi görünse de böyle. Eşit olmayan bir birleştirme örneği, ilk tablodaki kayıtların ikinci tabloda ilk tablodaki birleştirilmiş alanın, ikinci tabloda (veya eşit veya sıfırdan küçük veya buna eşit) daha büyük olduğu, ikinci tablodaki kayıtlara birleştirildiği bir birleşimdir. Doğal olarak bu, eşdeğerli bir birleşenden daha fazla kayıt döndürüyor. Doğal birleşim, iki tablonun birleştirilmiş alanlarından yalnızca birinin döndürüldüğü bir kutudur. Bu iki alan eşdeğerli bir birleşimde aynı tanım olduğundan her ikisini de eklemek artık vardır. Eşit olmayan bir birleştirme için, bu alanların her ikisini de eklemek önemlidir. Bu nedenle, eşim ve doğal birleşimler birlikte gelir. Birleştirilmiş alanlardan yalnızca birini döndürerek, bir eş birleşim (birçok birleşim tanımlayan) doğal birleşim olarak kullanmak istersiniz; Ancak, eşit olmayan bir birleştirme kullandıysanız, Birleşik alanlardan her ikisini de döndürerek doğal olmayan bir birleşim yapmak isteyebilirsiniz. Başka birleşimler da vardır. Tüm birleştirmeler en son 1992 'da tanımlanmıştır ve bu standart da SQL-92 olarak bilinir. Bazı birleşimler Microsoft Excel kullanıcıları için önemli değildir çünkü bu birleşimler Microsoft Excel 'de daha rahat hale gelebilir.

Kartezyen çarpım

İki veya daha fazla tablodan veri döndürmeye çalışılması, "Kartezyen ürün" olarak adlandırılır. Kartezyen bir ürün tüm tablolardaki tüm olası satır birleşimleri olarak tanımlanır. Çok sayıda kayıt içeren tablolardaki ve/veya birçok tabloda bir Kartezyen ürünün tamamlanması için birkaç saat doldurulabileceğinden, verileri döndürmeye çalışmadan önce birleşimlerinizin olduğundan emin olun. Aşağıdaki iki örnek tabloda kullanılan Kartezyen bir üründür; Bu tablonun yalnızca 3 kayıtdır ve toplam 9 kayıt oluşturur. Ancak, bunun yerine, tablo 100 kayıtlarınızda 10.000 1.000 kayıtları ardından, Tablo 1.000.000.000 kayıt! Join_Field Join_Field Color_Field Pattern_Field 1 2 Red Striped 1 3 Red Checkered 1 4 Red Polka-Dot 2 2 Blue Striped 2 3 Blue Checkered 2 4 Blue Polka-Dot 3 2 Green Striped 3 3 Green Checkered 3 4 Green Polka-Dot Bazen bazı kullanıcılar Kartezyen bir ürün kullanmak istiyor; Bununla birlikte, bunları alan çoğu kullanıcı yanlışlıkla yanlışlıkla yapılır ve bu da genellikle karıştırılır. Çoğu Kullanıcı birleşimdeki alanların çoğunu dıştığından, gerçek bir Kartezyen bir ürün şu şekilde kolay olabilir: Color_Field Red Red Red Blue Blue Blue Green Green Green 100 kayıtları Pattern_Table eklenirse, bu sorguda 309 kayıtları 103 (her biri kırmızı, mavi ve yeşil) kaydedilir. Kartezyen ürünler görece basit SELECT ifadelerine sahiptir. Bu, SQL 'in yukarıdaki Kartezyen ürününe nasıl görüneceğinin aşağıdaki gibidir: SELECT Color_Table.Color_Field, Pattern_Table.Pattern_Field FROM `c:\database`.Color_Table, `c:\database`.Pattern_Table Kartezyen bir ürünün pratik bir örneği, her birleşimin fiyat toplamlarıyla bir ticari ürün için tüm seçeneklerin olası birleşimlerinin listesini oluşturmaktır.

Başvurular

Microsoft Query "Kullanım Kılavuzu," sürüm 1,0, Sayfalar 101-114, 123-131 aşağıdaki iki kitap herhangi bir Microsoft ürününe dahil değildir ve Microsoft tarafından üretilmez. Burada tartışılan üçüncü taraf ürünler Microsoft 'tan bağımsız olarak satıcılar tarafından üretilmektedir; Bu ürünlerin performansı veya güvenilirliği ile ilgili hiçbir garanti vermiyoruz veya başka türlü garanti vermiyoruz. "Yeni SQL 'i anlama: tam kılavuz," Morgan Kaumann yayımcılar, Inc., 1993. "Joe dili Ko 's SQL for Smartıes: Gelişmiş SQL programlama," Morgan Kaumann Publishers, Inc., 1995. Microsoft Query 'de birleşim oluşturma hakkında daha fazla bilgi için, yardım 'da arama düğmesini seçin ve yazın: joins, overview

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Microsoft Insider 'a katılın

Bu bilgi yardımcı oldu mu?

Geri bildiriminiz için teşekkür ederiz!

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

×