Microsoft Query birleşimlerde kullanımını açıklaması

Makale çevirileri Makale çevirileri
Makale numarası: 136699 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, Microsoft Query'de birleşimleri kullanma anlatılır. Bir birleşim bir yöntemdir, veritabanları ile tanımlamak ve iki tablo arasındaki ilişkileri göstermek için kullanabilirsiniz. Microsoft Query'de oluşturabilir ve çeşitli birleşimler değiştirme. Çoğu durumda, Microsoft Query tabloları sorgunuzda sizin için birleştirir. Birleştirmeler, tabloları tablo bölmesinden bağlanma çizgilerle gösterilir.

Bu makaledeki kapsanan 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
				

Daha fazla bilgi

Birleştirme nedir?

Birleştirme, iki tablo için ortak (dışarı gerçek tablo olarak kaydedilir) bir yeni sanal tablosu oluşturma sahip oldukları bir alana göre birleştirilir iki tablo arasında bir bağlantıdır. Örneğin, aşağıdaki iki tablo ile:

      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 bir birleşim, aşağıdakine benzer:

   Join_Field   Color_Field      Pattern_Field
   2            Blue             Striped
   3            Green            Checkered
				


Color_Table hem Pattern_Table mevcut kayıtları yalnızca oldukları için sonucu tablo yalnızca 2 ve 3 Join_Field alandaki kayıtları içerir.

Pratik bir birleşim örneği ürünler ve Üreticiler satıcısı'nın listesi; Ürünler tablosundan bir satıcı ise tablo bir ürün KIMLIĞI alanında katıldı.

Iç birleştirme

Birleştirme bir iç birleşim olarak adlandırılan önceki örnekte, basit tür birleşim dir. Genellikle, tablolardaki alanlar yalnızca bir bölümünü kullanmak istediğiniz. Birleştirme şöyle, örneğin, biri yukarıdaki gibi gerçek bir iç birleştirme Join_Field, çıkarmak istediğiniz:

   Color_Field      Pattern_Field
   Blue             Striped
   Green            Checkered
				


Microsoft Query'de iç birleşimler, varsayılan birleşim türü olduğundan (daha fazla bilgi için bkz: sayfa 105 bulunan 'Microsoft Query Kullanıcı Kılavuzu' ndaki"sürüm 1.0).

SQL deyimi

Yapılandırılmış sorgu dili (SQL) SELECT deyimi, birleşim oluştururken kullanabileceğiniz makro türüdür. SQL diğer makro Microsoft Excel'in diller (Visual Basic for Applications ve Excel 4.0 makro dili) çok farklı olduğunu unutmayın.

Bu durumda <a0></a0> NOT birleştirmeler, Microsoft Query'de kolayca oluşturmak için SQL anlamak gerekli.

Her birleşim, kendisiyle ilişkilendirilmiş bir SELECT deyimi vardır. Her birleşim için SELECT deyimini, Microsoft Query'de araç çubuğundaki "SQL"'i tıklatarak görüntüleyebilirsiniz. Microsoft Excel'in makro kaydedicisi gibi sahip SELECT deyimini kaydetmek için Query'yi kullanabilirsiniz. SELECT deyimi Kaydedici farklı olarak, Microsoft Excel'in makro kaydedici, her zaman açıktır ve devre dışı bırakılamaz. Aşağıda SELECT deyimini yukarıdaki iç birleştirme için Microsoft Query'de şekilde görünebilir:

   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
				


Veritabanı adı 'dosya adı uzantısını bir dosya içinde birden çok tablo olabilen bir Microsoft Access veritabanı için mdb'dir C:\database' kullanıyoruz unutmayın. Her tablo, bazı diğer veritabanlarındaki, FoxPro, dBASE ve Paradox gibi kendi dosyası olması gerekir. Bu gibi durumlarda, tablo adı her zaman aynı dosya adı uzantısı olmadan olduğundan SQL söz dizimini yedek görünebilir.

SQL sözdizimi altyapılarını sorgulama arasında değişir; örneğin, Microsoft Access'te Yukarıdaki örnek sorgudan aşağıdakine 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];
				


Tabloyu bir Microsoft Access .mdb dosyasını olduğu için Microsoft Access'te yol tablosuna kullanılmaz. Bir dış tablo bağlı ve sorguda kullanılan bile, Microsoft Access SQL deyimini, dış tablonun yolu görüntülemez.



Dış birleşimi

Başka bir tür birleşim, dış birleşim olarak adlandırılır. Bir dış birleşim, bir tablodan tüm kayıtları ve kayıtları yalnızca ilk tablodan eşleşen değerlere sahip diğer tablodan alırsınız. Bu alan girişleri boş bazıları bırakın, veya "Null" Katılması, <a0></a0>, her iki tablo için iki olası dış birleşimler, "sol dış birleştirme" ve "(böylece adlı tabloları yan-tarafından-yan genellikle izin ver'i görüntülemek için) sağ dış birleşim," vardır. Önceki iki tablo bir örnek kullanarak, iki olası dış birleşimler biri şudur:

   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: verileri görüntülediğinizde, bir birleştirme, sözcüğü "NULL" görmezsiniz; birleştirmeler ile çalışırken, "NULL" anahtar sözcüğünü kullanın.

Microsoft Query'de kolayca fareyi kullanarak her iki tür bir dış birleşim oluşturulabilir (Bu yordam hakkında daha fazla bilgi için bkz: "Microsoft Query Kullanıcı Kılavuzu," sürüm 1.0 112 sayfasının).

SQL deyimini bir dış birleşim ikinci örneği için böyle görünebilir şudur:

   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}
				


Pratik bir dış birleşim örneği oluşturmak için <a0></a0>, bir şirketin ürünler satılmış ürünler için ancak değil değil satılmış ürünler hariç, satış rakamları ile listesini yapın. Bunu yapmak için <a0></a0>, bir ürün KIMLIĞI alanı Ürünler tablosundan ve satış tablo birleştirmek için kullanın.

Çıkart birleştirme

Çıkarma birleşimi üçüncü BIR tür birleşim dir. Çıkarma birleşimi bir dış birleşim tersidir; herhangi bir kayıt diğer tablodaki eşleşmeyen bir tablodaki kayıtları YALNıZCA içerir. Dış birleşimler gibi olan iki olası çıkarma birleşimleri için katılmak istediğiniz herhangi iki tablo vardır; ancak, genellikle çok "sol birleştirme çıkarma"veya "sağ birleştirme çıkarın."olarak anılır. Çıkarma birleşimi normalde dönmek alanları yalnızca bir tablo, çünkü tanım gereği diğer tablo alanları yalnızca NULL değerleri geri. Aşağıdaki bir mümkün olan birleştirme çıkarın:

   join_Field   Color_Field
   1            Red
				


ve diğer aşağıdadır:

   Join_Field   Pattern_Field
   4            Polka-Dot
				


Microsoft Query'de bir çıkarma birleşimi önce bir dış birleşim oluşturmak ve ölçütleri "IS NULL"'ı kullanarak, bir uygun alana (yukarıdaki örnekte ilk Pattern_Field; ikinci örnekte Color_Field) tablolar arasında eşleşen kayıtları dışlama oluşturulur.

SQL deyiminin ilk çıkarma birleşimi için yukarıdaki şekilde görünebilir şudur:

   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)
				


Pratik bir son sipariş olmayan müşterilerin listesini bir çıkarma birleşimi örneği oluşturmak için <a0></a0>. Bunu, bir Müşteriler tablonuz ve Siparişler tablosu için <a1>kullanım</a1> bir Sipariş No alanı yapmak için <a0></a0>.

Tam dış birleştirme

Dördüncü BIR tür birleşim tam dış birleşim dir. Tam dış birleşim, bir dış birleşim, ücretsiz bir çıkarma birleşimi ile birleşimidir. Tam dış birleşim iki tablo arasında ortak olan kayıtları birleştirir ve her iki tablodan tüm kayıtları'nı içerir. Tam dış birleşim şudur:

   Join_Field   Color_Field   Pattern_Field
   1            Red           (NULL)
   2            Blue          Striped
   3            Green         Checkered
   4            (NULL)        Polka-Dot
				




Microsoft Query'de bir tam dış birleşim, dış birleşim'ın SELECT deyimi çıkarma birleşimi'nın SELECT deyimi (yukarı bakın) arasındaki kendi satırında BIRLEŞIM işlecini ekleyerek oluşturulur.

Microsoft Query'de bir tam dış birleşim oluşturmak için <a0></a0>, karşılık gelen SQL cümle oluşturmak için aşağıdaki adımları kullanın:

  1. Bir dış birleşim oluşturmak daha sonra Dosya menüsünden Yeni'yi tıklatın ve sonra da bir çıkarma birleşimi oluşturun.
  2. Çıkarma birleşimi'nın SQL kopyalayın.
  3. Dış birleşimi için geçiş, dış birleşim'ın SQL deyimi, aşağıda kendi satırında UNION sözcüğü yazın çıkarma birleşimi'nın SQL UNION sözcük altına yapıştırın ve çıkarma birleşimi'nın penceresini kapatın.
Not Join_Field'ın değeri 4'a eşit olduğunu kayıt Pattern_Table tabloda olduğundan, sonuçları aşağıdaki tabloda, "4" Join_Field'ın değeri eksik. SQL cümle dones't Pattern_Table.John_Field alanı seçin.

   Join_Field   Color_Field   Pattern_Field
                (NULL)        Polka-Dot
   1            Red           (NULL)
   2            Blue          Striped
   3            Green         Checkered
				


Işte SQL için yukarıdaki tam dış birleştirme böyle görünebilir (aşağıdaki komutlar BIRLEŞIM işlecini yapıştırılan):

   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)
				


Pratik bir tam dış birleşim örneği oluşturmak için <a0></a0>, (yalnızca ilk listede olan) bir faks numarası ve (yalnızca ikinci liste olan) bir ınternet e-posta adlarını da dahil olmak üzere, farklı departmanlara tarafından kullanılan çakışan müşteri listeleri birleştirilemiyor. Her bölüm, birleştirilmiş listesi kullanılabilir yaparken, kısmi bir listesi kullanmaya devam etmek. Bunlar bir Müşteri No alanında bulunan katılması.

Self-Join

Bir beşinci birleştirme kendisiyle birleşim işlemini türüdür. Kendiyle bağlantı, bir tablodaki bir alan ile aynı tablonun bir kopyasını farklı bir alana eşleştirilir olur. Bu örnek tablo kullanma:

      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:

      Table_Three_01

   Employee_ID   Employee_Name   Reports_To
   1             Bob             3
   2             Sue             (NULL)
   3             Jim             2
   4             Jane            3
				


Kendiyle kendi yönetici'nin adlarıyla çalışan adlarının bir listesini oluşturmak için kullanılabilir. Içinde Table_Three_01 Reports_To ile Employee_ID Table_Three de katılması. Ilk önce böyle görünebilir şudur:

   Employee_Name   Employee_Name
   Bob             Jim
   Sue             (NULL)
   Jim             Sue
   Jane            Jim
				


Her iki alan için aynı alanı adı karmaşık olduğundan, ancak alan adları, aşağıdaki gibi değiştirin:

   Employee_Name   Supervisor
   Bob             Jim
   Sue             (NULL)
   Jim             Sue
   Jane            Jim
				


Yukarıdaki self-join için SQL böyle görünebilir şudur:

   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, Microsoft Query'de alanını yeniden adlandırmak için bir kullanım yok olur. Microsoft Excel, özgün alan adı kullandığından, bu geçerlidir. Bu sorun hakkında daha fazla bilgi için lütfen Microsoft Knowledge Base'de aşağıdaki makaleye bakın:

121551: XL5: sütun adı içinde MSQUERY Excel'e döndürülüyor yerine alan

Dönen veri yenilendiğinde, (verileri, servis talebi Özet kendisini oluşturabilir ve bir özel alan adı korunarak bir Özet Tablo'da döndürmeden sürece) her zaman Microsoft Excel'in makro sütun adını değiştirmeniz gerekir.

Eş birleşim ve Natural birleştirme

Şu ana kadar verilmiş olan tüm örnekleri de dahil olmak üzere, hemen hemen tüm birleşimler eş birleşim ve doğal birleştirmeler ' dir. Çok az anlamın ortalama kullanıcıya Microsoft Query'nin Bu terimlerin anlamı olan ancak sonraki iki paragraf girişimi curious olabilir bu koşullarını açıklayın.

Eş birleşim, birleştirme ise hangi kayıtların birleştirme alanları eşleşen değerleri her iki tabloda olup temel alınır. Yalnızca bir tanımını birleştirme gibi görünebilir, ancak bu değildir. Olmayan eşit birleşim ilk tablodaki birleştirilmiş alanda büyük ilk tablonun kayıtları için ikinci tablodaki kayıtları birleştirilen bir birleşim örneğidir (yerine eşit) birleştirilen ikinci tablodaki alan (veya daha az, veya değer yanı sıra, eşit). Doğal olarak, bir eş birleşim'den daha çok kayıt verir.

Doğal BIR birleşim iki tablonun birleştirilen alanların yalnızca bir tanesi döndürülen biridir. Bu iki alanı tarafından tanımı bir eş birleşim aynı olduğundan, her ikisi de içerecek şekilde gereksiz olur. Olmayan eşit birleşim için bu alanların her ikisi de dahil etmek önemlidir. Böylece, eş birleşim ve doğal birleştirmeler birlikte gidin. Bir eş (Bu, çoğu birleştirmeler açıklanmıştır) birleşim doğal birleşim birleştirilen alanların yalnızca bir döndürerek olmasını istediğiniz ancak olmayan eşit birleşim kullanırsanız, ayrıca birleştirilen alanların her ikisi de döndürerek olmayan doğal birleştirme yapmak isteyebilirsiniz.

Diğer bir tür birleşim vardır. Birleşim bir tam tayfın en son 1992'de tanımlanmıştır ve bu standart SQL-92 bilinir. Bu birleştirmeler Microsoft Excel'deki yapmak daha kolay olan şeyler için bazı birleştirmeler Microsoft Excel kullanıcıları için önemli değildir.

Kartezyen çarpımı

Ne bir "Kartezyen çarpımı." adlı tüm birleştirmeler olmadan iki veya daha fazla tablodan veri döndürmek istediğiniz oluşturur Kartezyen ürün satırları tüm tablolardaki tüm olası birleşimlerini olarak tanımlanır. Çok sayıda kayıt olan tablolara ve/veya çok sayıda tabloda bir <a0>Kartezyen ürün tamamlanması birkaç saat sürebilir, çünkü verileri, denemeden önce birleştirmeler sahip olmasına dikkat edin. Aşağıda iki örnek tablolar üzerinde kullanılan Kartezyen ürün, 9 kayıtlarının toplam veren 3 kayıtları, bu tablo yalnızca 3 kayıt olduğunu zaman. Bunun yerine, 100 kayıtları sürelerini 1.000 kayıtları zamanları 10.000 kayıt; tablo olan sonra tabloyu 1,000,000,000 kayıtları içerir, ancak düşünün!

   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 ürün olarak kullanmak istediğiniz; ancak getirmek çoğu kullanıcılar bunu yanlışlıkla ve bunları tarafından sık sık karıştı. Birleştirme alanların çoğu, kullanıcıların çoğu dışlamak için gerçek bir Kartezyen ürün kolayca bu olarak perplexing bakabilirsiniz:

   Color_Field
   Red
   Red
   Red
   Blue
   Blue
   Blue
   Green
   Green
   Green
				


100 Kayıt için Pattern_Table eklediyseniz, bu sorgu 309 kayıtları (103 kayıtlarının her kırmızı, yeşil ve mavi) gerekir.

Kartezyen ürün oldukça basit SELECT deyimlerine sahip. SQL'I yukarıdaki Kartezyen ürün için nasıl görünebilir şudur:

   SELECT Color_Table.Color_Field, Pattern_Table.Pattern_Field
   FROM `c:\database`.Color_Table, `c:\database`.Pattern_Table
				


Bir <a0>Kartezyen</a0> ürününün pratik bir örnek, tüm olası birleşimlerini seçenekleri bir mal ürün listesini oluşturmaya ve her birleşim için fiyat toplamlarını olabilir.

Referanslar

Microsoft Query "Kullanıcı Kılavuzu," sürüm 1.0, 101-114, 123 131 sayfaları

Aşağıdaki iki kitaplar, herhangi bir Microsoft bulunmayan ürünler ve öğeler Microsoft tarafından üretilen.

Burada ele alınan üçüncü taraf ürünleri Microsoft'tan bağımsız satıcılar tarafından üretilmiştir; garanti, örtük veya başka bir biçimde, bu ürünlerin performansı veya güvenilirliği konusunda.

"Yeni SQL anlama: tam BIR Kılavuzu" Morgan Kaufmann yayımcılar, ınc. 1993.

"Can Celko'nın SQL Smarties: SQL programlama, Gelişmiş" Morgan Kaufmann yayımcılar, ınc. 1995.

Microsoft Query'de birleştirmeler oluşturma hakkında daha fazla bilgi için aramayı seçin düğmesini Yardım ve türü:

   joins, overview
				

Özellikler

Makale numarası: 136699 - Last Review: 2 Mart 2007 Cuma - Gözden geçirme: 4.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 95 Standard Edition
  • Microsoft Excel 5.0 Standard Edition
  • Microsoft Excel X for Mac
  • Microsoft Excel 2001 for Macintosh
  • Microsoft Excel 98 for Macintosh
  • Microsoft Query 2000
Anahtar Kelimeler: 
kbmt kbinfo kbhowto KB136699 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:136699

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com