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

Ö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
Ö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				
MSQuery

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 136699 - Son İnceleme: 03/02/2007 05:43:45 - Düzeltme: 4.0

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

  • kbmt kbinfo kbhowto KB136699 KbMttr
Geri bildirim