Aracılığıyla paylaş


Nasıl yapılır: Oluşturma el ile iç birleşimler (Visual veritabanı araçları)

Yapabilirsiniz birleştirmek tablo veritabanında yansıma ilişkisi olmasa bile kendisi için bir tablo.Örneğin, kullanabileceğiniz bir iç birleşim aynı şehirde oturan yazar çiftlerini bulmak için.

Diğer bir birleşme olduğu gibi bir iç birleşim en az iki tablo gerektirir.Fark, ikinci bir eklemek yerine olan tablo sorgu için aynı ikinci bir örneğini eklerseniz tablo.Bu şekilde, bir sütunda ilk örneğini karşılaştırın tablo ikinci örnekteki aynı sütun için olanak sağlayan, her bir sütundaki değerleri karşılaştırmak.The Query and View Designer assigns an alias to the second instance of the table.

örnekn, kendisiyle birleşme işlemi tüm yazar çiftlerini bulmak için oluşturuyorsanız, karşılaştırmak city ilk örnek sütununda tablo karşı city sütununda ikinci bir örnek.Sonuçlanan sorgu aşağıdaki gibi görünebilir:

   SELECT 
         authors.au_fname, 
         authors.au_lname, 
         authors1.au_fname AS Expr2, 
         authors1.au_lname AS Expr3
      FROM 
         authors 
            INNER JOIN
            authors authors1 
               ON authors.city 
                = authors1.city
      WHERE
         authors.city = 'Berkeley'

Oluşturma bir iç birleştirmek genellikle birden fazla birleştirmek koşulu gerektirir.Nedenini anlamak için yukarıdaki sorgu sonucunu göz önünde bulundurun:

   Cheryl Carson       Cheryl Carson
   Abraham Bennet      Abraham Bennet
   Cheryl Carson       Abraham Bennet
   Abraham Bennet      Cheryl Carson

İlk satır işe yaramaz; Bu aynı şehirde yaşadığını Cheryl Carson Cihangir'in yaşar olduğunu belirtir.İkinci satır işe yaramaz.Bu yararsız veriyi atlamak için sadece iki yazar adları farklı yazarlar açıklamak içinde sonuç satırlarını koruyarak başka bir koşul ekleyin.Sonuçlanan sorgu aşağıdaki gibi görünebilir:

   SELECT 
         authors.au_fname, 
         authors.au_lname, 
         authors1.au_fname AS Expr2, 
         authors1.au_lname AS Expr3
      FROM 
         authors 
            INNER JOIN
            authors authors1 
               ON authors.city 
                = authors1.city
               AND authors.au_id
                <> authors1.au_id
      WHERE
         authors.city = 'Berkeley'

Sonuç küme şöyle oluşur:

   Cheryl Carson       Abraham Bennet
   Abraham Bennet      Cheryl Carson

Ancak iki sonuç satırı gereksizdir.İlk olarak ile aynı şehirde yaşadığını yaşar ve ikincisi de aynı şehirde yaşadığını Benli'nin yaşar diyor diyor.Bu fazlalık ortadan kaldırmak için ikinci değiştirebilirsiniz birleşim koşulu karşı değil "eşit" için "küçüktür." Sonuçlanan sorgu aşağıdaki gibi görünebilir:

   SELECT 
         authors.au_fname, 
         authors.au_lname, 
         authors1.au_fname AS Expr2, 
         authors1.au_lname AS Expr3
      FROM 
         authors 
            INNER JOIN
            authors authors1 
               ON authors.city 
                = authors1.city
               AND authors.au_id
                < authors1.au_id
      WHERE
         authors.city = 'Berkeley'

Ve sonuç küme şöyle görünür:

   Cheryl Carson       Abraham Bennet

Oluşturmak için bir iç birleştirmek el ile

  1. Ekleme Diyagram bölmesine tablo veya çalışmak istediğiniz tablo değerli nesne.

  2. Böylece Diyagram bölmesinde aynı tablo veya nesne tablo değerli Diyagram bölmesine iki kez içinde gösterir aynı tabloyu yeniden ekleyin.

    Sorgu ve Görünüm Tasarımcısı atar bir diğer ad için ikinci örnek ardışık bir numara ekleyerek tablo adı.Buna ek olarak, sorgu ve Görünüm Tasarımcısı, tablo veya tablo değerli nesne Diyagram bölmesi içinde iki olay arasındaki birleştirmek satırı oluşturur.

  3. birleştirmek satırını sağ tıklatın ve seçin Özellikler kısayol menüsünden.

  4. Properties penceresinde Katıl koşul ve Yaz 'ı tıklatın ve üç nokta (…) özellik sağındaki.

  5. De Katıl iletişim kutusunu karşılaştırmayı değiştirmek işleç gerektiği gibi birincil anahtarlar arasında.Örneğin, işleç için değişebilir küçüktür (<).

  6. Ek oluşturma birleşim koşulu (örneğin, yazarlar.POS =) ilk geçtiği tablo veya nesne tablo değerli içinde birincil birleştirmek sütunu adını sürükleyip, İkinci örnekte karşılık gelen sütuna bırakarak.

  7. Diğer seçenekleri belirtmek için sorgu çıktı sütunları gibi arama koşulları ve sıralama düzeni.