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
Ekleme Diyagram bölmesi çalışmak istediğiniz tablo veya nesne tablo değerli.
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.
birleştirmek satırını sağ tıklatın ve seçin özellikleri kısayol menüsünden.
Özellikler penceresini tıklatın... birleştirmek koşulu ve türü tıklatın.üç nokta (...) sağa özellik.
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<).
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.
Diğer seçenekleri belirlemek için bir sorgu çıktı sütunu gibi arama koşulları ve sıralama düzeni.
See Also