Access sorgusuna birden çok veri kaynağı eklediğinizde, veri kaynaklarının birbiriyle ilişkisine bağlı olarak, görmek istediğiniz kayıtları sınırlandırmak için birleştirme işlemleri kullanırsınız. Birleşimleri ayrıca iki veri kaynağındaki kayıtları birleştirmek için de kullanırsınız, böylece kaynaklardaki her kayıt çifti sorgu sonuçlarında tek bir kayıt haline gelir.
Bu makalede çeşitli birleştirme türleri açıklanmakta ve bunları sorguda nasıl kullanacağınız gösterilmektedir. Varsayılan olarak, sorguda kullandığınız iki veri kaynağı arasında zaten bir ilişki varsa birleştirme otomatik olarak oluşturulur. Birleşim, birbirine açıkça karşılık gelen alanlar varsa da oluşturulur. Otomatik olarak oluşturulan birleşimi silebilirsiniz. Bu makalede, tablo ilişkilerinin nasıl oluşturulduğu da dahil olmak üzere temel bilgiler verilmektedir.
Not
Sorguları, tabloları birleştirdiğiniz gibi birleştirebilirsiniz ve her ikisini de birleştirebilirsiniz.
Bu makalede
- Genel bakış
- Birleştirme türleri
- Birleştirilen tabloların her ikisinde de ortak bir değerin bulunduğu satırları gösterme
- Bir tablonun tüm satırlarını ve diğer tablodaki karşılık gelen satırları gösterme
- Her iki tablodaki tüm satırları gösterin ve ortak bir değer bulunduğunda bunları birleştirin
- Çapraz birleştirmeler
- Alan değerlerinin eşitsizliğine dayalı olarak tabloları birleştirme
- Birleşim silme
Genel bakış
Veritabanı, birbiriyle mantıksal ilişkileri olan veri tabloları koleksiyonudur. İlişkileri, tabloları ortak alanlarına göre bağlamak için kullanırsınız. Tablo herhangi bir sayıda ilişkinin parçası olabilir, ancak her ilişkinin her zaman tam olarak iki tablosu vardır. Sorguda, ilişki birleşimle gösterilir.
Sorguya tablo eklediğinizde Access, tablolar arasında tanımlanan ilişkileri temel alan birleştirmeler oluşturur. Sorgularda, önceden tanımlanmış ilişkileri temsil etmeseler bile birleşimleri el ile oluşturabilirsiniz. Sorgunun veri kaynağı olarak (tablolar yerine veya tablolara ek olarak) başka sorgular kullanırsanız, kaynak sorgular arasında ve bu sorgular ile veri kaynağı olarak kullandığınız tablolar arasında birleştirmeler oluşturabilirsiniz.
Birleştirmeler, verilerin sorgu işlemlerine dahil edilmek için eşleşmesi gereken kuralları oluşturmaları açısından sorgu ölçütlerine benzer şekilde davranır. Ölçütlerden farklı olarak birleşimler, birleştirme koşullarını karşılayan her satır çiftinin kayıt kümesinde birleştirilerek tek bir satır oluşturmasını da belirtir.
Dört temel birleşim türü vardır: iç birleşimler, dış birleşimler, çapraz birleşimler ve eşit olmayan birleşimler. Bu makalede kullanabileceğiniz her birleşim türünü, her türü neden kullandığınızı ve birleşimleri nasıl oluşturacağınızı açıklanmaktadır.
Tablolar için ilişkiler ne ise, birleştirmeler sorgular içindir: İki kaynaktaki verilerin ortak veri değerlerine göre nasıl birleştirilebileceğinin bir göstergesidir. Aşağıda, sorgu Tasarım Görünümü'nde birleşimin özellikleri bir iletişim kutusunda açık olarak görüntülenen bir birleştirme çizimi verilmiştir:
Tablolar arasındaki bu çizgi birleşimi temsil eder. Bir birleştirmeye çift tıklayarak Birleştirme Özellikleri iletişim kutusunu (gösterilen) açın ve birleşimi gözden geçirin veya değiştirin.
Birleştirmeler bazen yönlüdür. İletişim kutusunun bu alanı, birleştirmede hangi tablonun bulunduğunu ve tabloları birleştirmek için hangi alanların kullanıldığını gösterir.
Bu alan birleşimin türünü belirler: 1. seçenek bir iç birleşim, 2 bir sol dış birleşim ve 3 bir sağ dış birleşimdir.
Her iki tablodaki alanlar kullanılabilir ve her birinden belirli bir göreve ait veriler görüntülenir. İç birleşimde başka hiçbir veri bulunmaz. Dış birleşimde, bir tablodaki ilişkisiz kayıtlar da sorgu sonuçlarına dahil edilir.
Birleştirme türleri
Dört temel birleşim türü vardır: iç birleşimler, dış birleşimler, çapraz birleşimler ve eşit olmayan birleşimler. Çapraz birleşimler ve eşit olmayan birleşimler gelişmiş birleşim türleridir ve nadiren kullanılırlar, ancak birleşimlerin nasıl çalıştığını tam olarak anlayabilmeniz için bunlar hakkında bilgi sahibi olmanız gerekir.
İç birleşimler: yalnızca her iki tablodaki ilişkili veriler birleştirilir
İç birleştirme, Access'in yalnızca ilişkili tabloda karşılık gelen veriler varsa tablodaki verileri dahil ettiği (veya tersi) yapılan birleştirmedir. Genellikle iç birleşimleri kullanırsınız. Bir birleştirme oluşturduğunuzda ve bunun ne tür bir birleştirme olduğunu belirtmezseniz, Access iç birleşim istediğinizi varsayar. İç birleşimler, iki kaynaktan verileri paylaşılan değerler temelinde birleştirmenize olanak sağladıkları için yararlıdır; böylece verileri yalnızca tam resim olduğunda görürsünüz.
Dış birleşimler: Doğru şekilde birleştirilen tüm ilgili veriler ve bir tablodan kalan tüm kayıtlar
Dış birleşim iç birleştirme gibidir, ancak tablolardan birinin kalan satırlarını ekler. Dış birleşimlerde yön önemlidir: Sol dış birleştirme, birleştirmedeki ilk tablo olan sol tablodaki tüm kayıtları, sağ dış birleştirme ise birleştirmedeki ikinci tablo olan sağ tablodaki tüm kayıtları içerir.
Tam dış birleşimler: tüm veriler, mümkün olduğunda bir araya getirilir
Bazı sistemlerde dış birleşim, her iki tablodaki tüm satırları içerebilir ve satırlar karşılık geldiklerinde birleştirilir. Buna tam dış birleşim denir ve Access bunları açıkça desteklemez. Bununla birlikte, aynı etkiyi elde etmek için çapraz birleşim ve ölçütler kullanabilirsiniz.
Çapraz birleşimler: Tüm veriler, mümkün olan her şekilde bir araya getirilir
Çoğu zaman, çapraz birleşim, bir sorguya iki tablo ekleyip sonra tabloları birleştirmeyi unutmanın bir yan etkisidir. Access bunu, bir tablodaki her kaydı diğer tablodaki her kayıtla birlikte, yani kayıtların, olası her birleşimde görmek istediğiniz şeklinde yorumlar. Hiçbir veri birleştirilemediğinden, bu tür bir birleştirme nadiren yararlı sonuçlar verir. Ancak birkaç durumda tam da ihtiyacınız olan şey çapraz birleştirme olabilir.
Eşit olmayan birleşimler: normal bir birleştirme gibidir, ancak satırları birleştirmek için farklı bir karşılaştırma kullanma
Eşit olmayan birleştirmeler, değerleri karşılaştırmak ve verilerin birleştirilip birleştirilmeyeceğini ve nasıl birleştirileceğini saptamak için eşittir işareti (=) dışında bir işleç kullanır. Eşit olmayan birleşimler açıkça desteklenmez, ancak aynı etkiyi elde etmek için çapraz birleşim ve ölçütler kullanabilirsiniz.
Birleştirilen tabloların her ikisinde de ortak bir değerin bulunduğu satırları gösterme
Birleştirilen alanda yalnızca eşleşen değerlere sahip satırları göstermek isterseniz, iç birleşim kullanırsınız. Access iç birleşimleri otomatik olarak oluşturur.
İç birleşimler, en sık kullanılan birleşim türüdür. Bu sorguya, birleştirilen tablolardan birindeki satırların, birleştirilen alanlardaki veriler temelinde diğer tablodaki satırlara karşılık geldiğini söylerler. İç birleşimli bir sorgu çalıştırıldığında, sorgu işlemlerine yalnızca birleştirilen tabloların her ikisinde de ortak değer bulunan satırlar eklenir.
Nasıl INasıl yaparım? is use an inner join?
Çoğu zaman, iç birleşim kullanmak için hiçbir şey yapmanız gerekmez. Sorguya eklediğiniz tablolar arasında zaten ilişkiler varsa, tabloları eklediğinizde Access ilişkili tablo çiftlerinin her ikisi arasında otomatik olarak bir iç birleştirme oluşturur. Bilgi tutarlılığı zorlanırsa Access, bire çok ilişkisinin "bir" tarafında hangi tablonun bulunduğunu göstermek için birleştirme çizgisinin üstünde "1" ve "çok" tarafında yer alan tabloyu belirtmek için de sonsuzluk simgesi (∞) görüntüler.
İlişki oluşturmamış olsanız bile, bir sorguya iki tablo eklerseniz ve bu tablolardan her biri aynı veya uyumlu veri türüne sahip birer alana sahipse ve birleştirme alanlarından biri birincil anahtarsa, Access otomatik olarak iç birleşimler oluşturur. Bilgi tutarlılığı zorlanmadığı için bu durumda "bir" ve "çok" simgeleri görüntülenmez.
Sorgunuza, aralarında ilişkiler oluşturmadığınız sorgular eklerseniz, Access bu sorguların arasında veya sorgular ile tablolar arasında otomatik olarak iç birleştirmeler oluşturmaz. Genellikle, bunları kendiniz oluşturmalısınız. İç birleşim oluşturmak için bir veri kaynağındaki alanı başka bir veri kaynağındaki alana sürüklersiniz. Access, birleştirme oluşturulduğunu göstermek için iki alan arasında bir çizgi görüntüler.
İç birleşim için SQL söz dizimi
İç birleşimler, aşağıda gösterildiği gibi SQL'de FROM yan tümcesinde belirtilir:
FROM tablo1 INNER JOIN tablo2 ON tablo1. alan1 karşılaştırma tablosu2. alan2
INNER JOIN işleminin bölümleri:
| Bölüm | Açıklama |
|---|---|
| tablo1, tablo2 | Kayıtların birleştirileceği tabloların adı. |
| alan1, alan2 | Birleştirilen alanların adı. Alanlar sayısal değilse, aynı veri türünde olmalı ve aynı türde veriler içermelidir, ancak alanların aynı ada sahip olması gerekmez. |
| karşılaştırma | Herhangi bir ilişkisel karşılaştırma işleci: "=," "<," ">," "<=," "=," veya> "<>." |
İç birleşim söz dizimi hakkında daha fazla bilgi için INNER JOIN İşlemi konusuna bakın.
Bir tablonun tüm satırlarını ve diğer tablodaki karşılık gelen satırları gösterme
Dış birleşimler bir sorguya, birleştirmenin her iki tarafındaki bazı satırlar tam olarak karşılık gelse de, sorgunun bir tablodaki tüm satırları ve ayrıca diğer tablonun birleştirmenin her iki tarafında da ortak bir değeri paylaşan satırları içermesi gerektiğini söyler.
Dış birleşimler sol dış birleşimler olabileceği gibi sağ dış birleşimler de olabilir. Bir sol dış birleşimde, sorgu SQL deyimi FROM yan tümcesindeki ilk tablonun tüm satırlarını ve yalnızca diğer tablonun birleştirme alanı her iki tabloda ortak değerler içeren satırları içerir. Sağ dış birleştirmede, sorgu SQL deyimi FROM yan tümcesindeki ikinci tablonun tüm satırlarını ve yalnızca birleştirme alanı her iki tabloda ortak değerler içeren diğer tablonun satırlarını içerir.
Not
Belirli bir birleştirmede hangi tablonun sol tablo mu yoksa doğru tablo mu olduğunu birleştirmeye çift tıklayarak ve ardından Birleştirme Özellikleri iletişim kutusuna bakarak kolayca anlayabilirsiniz. Ayrıca, SQL görünümüne geçebilir ve ardından FROM yan tümcesini inceleyebilirsiniz.
Bir dış birleşimin bir tarafındaki bazı satırların diğer tabloya karşılık gelen satırları olmayacağından, diğer tablodan sorgu sonuçlarında döndürülen alanlardan bazıları, satırlar karşılık gelmediğinde boş olacaktır.
Nasıl INasıl yaparım? bir dış birleşim kullanır?
Dış birleşim oluşturmak için var olan bir iç birleşimi değiştirebilirsiniz. İç birleşim yoksa, bir tane oluşturur ve sonra bunu dış birleşimle değiştirirsiniz.
Bir iç birleşimi dış birleştirmeyle değiştirme
- Sorgu Tasarım görünümünde, değiştirmek istediğiniz birleştirmeye çift tıklayın.
Birleştirme Özellikleri iletişim kutusu görüntülenir. - Birleştirme Özellikleri iletişim kutusunda, 2. ve 3. seçeneklerin yanında listelenen seçeneklere dikkat edin.
- Kullanmak istediğiniz seçeneğe ve ardından Tamam'a tıklayın.
- Access birleştirmeyi görüntüler ve tüm satırların ekleneceği veri kaynağından, yalnızca birleştirme koşuluna uyan satırların ekleneceği veri kaynağını gösteren bir ok gösterir.
Belirsiz dış birleşimler
LEFT JOIN ve INNER JOIN içeren bir sorgu oluşturursanız, Access önce hangi birleştirme işlemini yapacağını saptayamayabilir. Önce left join veya inner join yapılmasına bağlı olarak sonuçlar farklı olduğundan, Access bir hata iletisi görüntüler:
Bu hatayı düzeltmek için, sorguda değişiklik yaparak önce hangi birleştirmenin gerçekleştirileceğinin net olmasını sağlamalısınız.
Dış birleşim için SQL söz dizimi
Dış birleşimler, aşağıda gösterildiği gibi SQL'de FROM yan tümcesinde belirtilir:
FROM tablo1 [ LEFT | RIGHT ] JOIN tablosu2
ON tablo1.alan1 karşılaştırma tablosu2.alan2
LEFT JOIN ve RIGHT JOIN işlemlerinin bölümleri:
| Bölüm | Açıklama |
|---|---|
| tablo1, tablo2 | Kayıtların birleştirileceği tabloların adı. |
| alan1, alan2 | Birleştirilen alanların adı. Alanlar aynı veri türünde olmalı ve aynı türde veriler içermelidir, ancak alanların aynı ada sahip olması gerekmez. |
| karşılaştırma | Herhangi bir ilişkisel karşılaştırma işleci: "=," "<," ">," "<=," "=," veya> "<>." |
Dış birleşim söz dizimi hakkında daha fazla bilgi için LEFT JOIN, RIGHT JOIN İşlemleri konusuna bakın.
Her iki tablodaki tüm satırları gösterin ve ortak bir değer bulunduğunda bunları birleştirin
İki tablonun tüm satırlarını göstermek ve bunları ortak değerler temelinde birleştirmek istediğinizde tam dış birleşim kullanırsınız. Access tam dış birleşimleri açıkça desteklemez ancak birleşim sorgusu kullanarak da aynı etkiyi elde edebilirsiniz. Aşağıdaki yordamda bunun nasıl yapılacağı açıklanır, ancak birleşim sorguları hakkında daha fazla bilgi edinmek isterseniz Ayrıca Bkz . bölümüne bakın.
Birleşim sorgusu kullanarak tam dış birleşim yapmak için:
Tam dış birleşim olarak kullanmak istediğiniz alan üzerinde sol dış birleşimi olan bir sorgu oluşturun.
Giriş sekmesinde, Görünümler grubunda Görünüm'ü, ardından SQL Görünümü'nü tıklatın.
SQL kodunu kopyalamak için CTRL+C tuşlarına basın.
FROM yan tümcesinin sonundaki noktalı virgülü silin ve ENTER tuşuna basın.
UNION yazın ve ENTER tuşuna basın.
Not
Tam dış birleşim yapmak için birleşim sorgusu kullandığınızda ALL anahtar sözcüğünü kullanmayın.
3. adımda kopyaladığınız SQL kodunu yapıştırmak için CTRL+V tuşlarına basın.
Yapıştırdığınız kodda LEFT JOIN yerine RIGHT JOIN yapın.
İkinci FROM yan tümcesinin sonundaki noktalı virgülü silin ve ENTER tuşuna basın.
FROM yan tümcesinde listelenen ilk tabloya (soldaki tablo) birleştirme alanının değerinin NULL olduğunu belirten bir WHERE yan tümcesi ekleyin.
Örneğin, FROM yan tümcesi:FROM Products RIGHT JOIN [Order Details] ON Products.ID = [Order Details].[Product ID]Aşağıdaki WHERE yan tümcesini eklemeniz gerekir:
WHERE Products.ID IS NULLBirleşim sorgusunun sonunu belirtmek için WHERE yan tümcesinin sonuna noktalı virgül (;) yazın.
Tasarım sekmesinin Sonuçlar grubunda Çalıştır'a tıklayın.
Çapraz birleştirmeler
Çapraz birleşimler, Access'te açıkça temsil edilmemeleri bakımından iç ve dış birleşimlerden farklıdır. Çapraz birleştirmede, bir tablodaki her satır başka bir tablodaki her satırla birleştirilir, sonuç çapraz çarpım veya Kartezyen çarpım olarak adlandırılır. Açıkça birleştirilmemiş tablolar içeren bir sorguyu her çalıştırdığınızda, sonuç çapraz çarpımdır. Çapraz birleşimler genellikle kasıtsız olsa da yararlı olabileceği durumlar da vardır.
Neden çapraz birleşim kullanmalıyım?
İki tablo veya sorgu arasındaki olası tüm satır bileşimlerini incelemek isterseniz, çapraz birleşim kullanın. Örneğin, işletmenizin muhteşem bir yıl geçirdiğini ve müşterilerinize indirim yapmayı düşündüğünüzü varsayalım. Her müşterinin satın almalarını toplayan bir sorgu oluşturabilir, birkaç olası indirim yüzdesi içeren küçük bir tablo oluşturabilir ve bu ikisini çapraz birleşim gerçekleştiren başka bir sorguda birleştirebilirsiniz. Her müşteri için bir dizi varsayımsal indirim görüntüleyen bir sorgu elde edersiniz.
Nasıl INasıl yaparım? cross join nasıl kullanılır?
Sorgunuza her tablo veya sorgu eklediğinizde çapraz birleşim üretilir ve her tablo veya sorgu için en az bir açık birleştirme oluşturmazsınız. Access, her tablo veya sorguda bulunan ve başka hiçbir tablo veya sorguya açıkça birleştirilmemiş her satırı, sonuçlardaki her iki satırdan biriyle birleştirir. Önceki paragrafta yer alan indirim senaryosunu ele alalım. 91 müşteriniz olduğunu ve beş olası indirim yüzdesine bakmak istediğinizi varsayalım. Çapraz birleşiminiz 455 satır oluşturur (91 ve 5'in çarpımı).
Tahmin edebileceğiniz gibi, istenmeyen çapraz birleşimler sorgu sonuçlarınızda çok sayıda satır oluşturabilir. Dahası, bu sonuçlar genellikle anlamsızdır, çünkü aslında her satırı diğer satırlardan biriyle birleştirmeyi amaçlamıyorsanız, sonuçlarda gösterilen birleştirilmiş satırların çoğu anlamlı olmayacaktır. Son olarak, istenmeyen çapraz birleşimlerin kullanıldığı sorguların çalıştırılması çok uzun zaman alabilir.
1. Çember içine alınmış alanlar birbirine birleştirilmelidir.
1. Çok fazla sayıda kayda dikkat edin.
1. Kayıt sayısının çok daha az olduğunu unutmayın.
Alan değerlerinin eşitsizliğine dayalı olarak tabloları birleştirme
Birleşimlerin, birleştirilen alanların eşdeğerliğine dayalı olması gerekmez. Birleştirme büyüktür (), küçüktür (><), veya eşit değildir (<>) gibi herhangi bir karşılaştırma işlecini temel alabilir. Eşdeğerliğe dayalı olmayan birleştirmelere eşit olmayan birleştirmeler denir.
İki veri kaynağının satırlarını eşit olmayan alan değerlerini temel alarak birleştirmek isterseniz, eşit olmayan birleştirme kullanırsınız. Normalde, eşit olmayan birleşimlerde büyüktür (), küçüktür (<), büyüktür veya> eşittir (>=) ya da küçüktür veya eşittir (<=) karşılaştırma işleçleri temel alınır. eşit değildir (<>) işlecini temel alan eşit olmayan birleştirmeler, neredeyse çapraz birleşimler kadar satır döndürebilir ve sonuçların yorumlanması zor olabilir.
Nasıl INasıl yaparım? unequal join kullanır?
Eşit olmayan birleştirmeler Tasarım görünümünde desteklenmez. Bunları kullanmak istiyorsanız, bunu SQL görünümünü kullanarak yapmalısınız. Öte yandan, Tasarım görünümünde birleşim oluşturabilir, SQL görünümüne geçebilir, eşittir (=) karşılaştırma işlecini bulabilir ve bunu kullanmak istediğiniz işleçle değiştirebilirsiniz. Bunu yaptıktan sonra, ancak önce SQL görünümünde karşılaştırma işlecini yeniden eşittir (=) olarak değiştirirseniz sorguyu yeniden Tasarım görünümünde açabilirsiniz.
Birleşim silme
Access istemediğiniz bir birleştirmeyi otomatik olarak oluşturursa veya yanlışlıkla bir birleştirme oluşturursanız (örneğin, benzer olmayan veri türlerine sahip iki alan arasındaki bir birleştirme) birleştirmeyi silebilirsiniz.
- Sorgu tasarımı kılavuzunda, kaldırmak istediğiniz birleştirmeye tıklayın.
- DELETE tuşuna basın.
-veya-
- Sorgu tasarımı kılavuzunda, kaldırmak istediğiniz birleştirmeye sağ tıklayın ve ardından Sil'e tıklayın.
Ekleme sorgusunu kullanarak kayıtları tabloya eklemeBirleşim sorgusu kullanarak birçok seçme sorgusunun sonuçlarını birleştirmeBirden çok tabloya dayalı sorgu oluşturmaİlişki oluşturma, düzenleme veya silme