Makale numarası: 136699 - Son Gözden Geçirme: 02 Mart 2007 Cuma - Gözden geçirme: 4.0 Microsoft Query birleşimlerde kullanımını açıklaması
Bu SayfadaÖzetBu 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 bilgiBirleş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ştirmeBirleş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 deyimiYapı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şimiBaş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ştirmeDö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:
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-JoinBir 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 (http://support.microsoft.com/kb/121551/EN-US/ ) : 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. ReferanslarMicrosoft 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 Bu makaledeki bilginin uygulandığı durum:
Otomatik TercümeÖ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
(http://support.microsoft.com/kb/136699/en-us/
)
| Diğer Kaynaklar Diğer Destek Siteleri
ToplulukHemen Yardım AlMakale çevirileri
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Üste