SQL'in ilk günlerinde, yinelenen sütun adlarıyla nasıl başa çıkılacağı sorununa çözüm olarak seçildi (aşağıdaki nota bakın).
Bir soruyu başka bir yanıttan ödünç almak için:
SELECT P.ProductName,
P.ProductRetailPrice,
O.Quantity
FROM Products AS P
INNER JOIN Orders AS O ON O.ProductID = P.ProductID
WHERE O.OrderID = 123456
Sütun ProductID(ve muhtemelen diğerleri) her iki tablo için ortaktır ve birleştirme koşulu sözdizimi her ikisine de referans gerektirdiğinden, 'nokta kalifikasyonu' netleştirme sağlar.
Tabii ki, daha iyi bir çözüm asla ilk etapta yinelenen sütun adlarına izin vermemekti! Eğer yeni kullanırsanız mutlu ki, NATURAL JOINsözdizimi, aralık değişkenleri için ihtiyaç Pve Ouzağa gider:
SELECT ProductName, ProductRetailPrice, Quantity
FROM Products NATURAL JOIN Orders
WHERE OrderID = 123456
Peki ASanahtar kelime neden isteğe bağlıdır? SQL standart komitesi üyesi ile kişisel tartışmadan Hatırladığım (ya Joe Celko veya Hugh Darwen) olmasıydı onların hatırlama (Microsoft'un?) Alınması yönünde gerekli bir satıcının ürünü standardını tanımlama zaman ve başka bir satıcının de o oldu ürün (Oracle'ın?) atlanmasını gerektirdi, bu nedenle seçilen uzlaşma onu isteğe bağlı hale getirmekti. Bunun için bir alıntım yok, ya bana inan ya da inanma!
İlişkisel modelin ilk günlerinde, başlıkları ayrık olmayan ilişkilerin çapraz çarpımı (veya teta-birleşim veya eşit-birleşim) aynı ismin iki niteliği ile bir ilişki oluşturduğu ortaya çıktı; Codd'un ilişkisel analizindeki bu soruna çözümü, daha sonra SQL'de taklit edilen nokta kalifikasyonunun kullanılmasıydı (daha sonra doğal birleştirmenin kayıpsız ilkel olduğu fark edildi; yani, doğal birleştirmenin tüm teta birleşimlerinin yerini alabileceği ve hatta çapraz ürün.)
Kaynak: Business System 12, TTM Uygulayıcıları Atölyesi, Northumbria Üniversitesi'nde verilen sunumun slaytlarına not veren notlar, 2-3 Haziran 2011, Hugh Darwen