Aracılığıyla paylaş


Nasıl Yapılır: Oluşturma el ile Self-joins (Visual veritabanı araçları)

Tabloyu, veritabanında yansıma ilişkisi yok, kendisi için bir tablo katılabilirsiniz.Örneğin, iç birleştirmek aynı şehirde yaşayan yazar çiftlerini bulmak için kullanabilirsiniz.

Ile herhangi bir birleştirmek olduğu gibi en az iki tablo bir iç birleştirmek gerektirir.Sorguya ikinci bir tablo eklemek yerine, bir saniye ekleyin, farktır örnek aynı tablonun.Böylece ilk örneğindeki sütun karşılaştırabilirsiniz tablo aynı sütunda için ikinci örnek, her bir sütundaki değerleri karşılaştırmak veren.The Query and View Designer assigns an diğer ad to the second örnek of the tablo.

Örneğin, iç birleştirmek tüm Berkeley içinde yazar çiftlerini bulmak için oluşturuyorsanız, karşılaştırmak city karşı tablonun ilk örneğindeki sütun city ikinci örnek sütununda. 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'

iç birleştirmek oluşturmak çoğunlukla birden çok birleştirmek koşulu gerektirir.Nedenini anlamak için , önceki sorgunun sonucunu göz önünde bulundurun:

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

Ilk satırın yararsız; Cheryl Carson Cheryl Carson aynı şehirde bulunan gösterir.Ikinci satırdaki eşit gereksizdir.Bu yararsız veriyi elemek için , yalnızca, iki yazar adları farklı yazarları tanımlamak 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 geliştirilmiştir:

   Cheryl Carson       Abraham Bennet
   Abraham Bennet      Cheryl Carson

Ancak iki sonuç satırı yedek.Ilk Bennet aynı şehirde bulunan Carson bulunur ve ikinci Carson aynı şehirde bulunan Bennet yaşar diyor Fort.Bu yedekleme elemek için , ikinci değiştirebilirsiniz birleşim koşulu "için eşit değil" den "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ümesi şöyle görünür:

   Cheryl Carson       Abraham Bennet

Kendisiyle birleştirmek işlemini el ile oluşturmak için

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

  2. Diyagram bölmesinde aynı tablo veya nesne'ı iki kez Diyagram bölmesinde tablo değerli gösterir aynı tabloyu yeniden ekleyin.

    Sorgu ve Görünüm Tasarımcısı atayan bir diğer ad ikinci örneğe tablo adına bir sıralı sayı ekleyerek.Buna ek olarak, sorgu ve Görünüm Tasarımcısı, tablo veya Diyagram bölmesinde tablo değerli nesne iki kez tekrarlandığını arasında bir birleştirmek çizgisi oluşturur.

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

  4. Özellikler penceresini tıklatın... birleştirmek koşulu ve türü tıklatın.üç nokta (...) sağa özellik.

  5. Içinde birleştirmek iletişim kutusu gerektiği gibi birincil anahtarlar arasındaki karşılaştırma işlecini değiştirin.Örneğin, (daha az işleç değişebilir<).

  6. Ek birleştirmek koşulunu oluşturun (örneğin, gelen yazarlar.pos =) ilk geçtiği tablo veya nesne tablo değerli birincil birleştirmek sütunu adını sürükleyip sürükleyip bırakarak ikinci oluşumu karşılık gelen sütun üzerinde.

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