Arkadaşım yanlış anlamadıysam, sen her iki tablodan tek sorguda aynı kullanıcıya ait verileri çekiyim diye böyle yapıyorsun. Ancak bu durumda tablolar birbiriyle ilişkili olmadığından tekrarlaması normal. Yani kayıt sayıları birbiriyle aynı değil, birbirini bağlayan bir alan olmadığından. Tablo durumunu da tam bilemediğimizden tahminen left join kullanman gerekli gibi.

Alıntı:
Alıntı
Klasik Join
İki tabloyu birlikte sorgulamanın en kolay yolu, asıl tablodaki birincil anahtar ile ikinci tablodaki yabancı anahtarı birbirine eşitlemektir.

Örneğin
Kod:
SELECT Kitap.kitapNo,Odunc.kitapNo
FROM Kitap,Odunc
WHERE Kitap.kitapNo=Odunc.kitapNo

Left [Outer] Join
İki tablo arasında ilişkili sorgu yapılırken, birinci tablodaki tüm kayıtlar getirilir. 2. Tabloda ise sadece ilişkiye göre uygun kayıtlar sağ tarafına eklenir.

Örneğin
Kod:
SELECT uye.Adi,odunc.KitapNo
FROM uye LEFT JOIN odunc ON odunc.uyeNo=uye.uyeNo

Right [Outer] Join

İki tablo arasında ilişkili sorgu yapılırken, ikinci tablodaki tüm kayıtlar getirilir. 1. Tabloda ise sadece ilişkiye göre uygun kayıtlar sağ tarafına eklenir.

Örneğin
Kod:
SELECT Kitap.kitapAdi
FROM Kitap
RIGHT JOIN odunc ON odunc.KitapNo=Kitap.KitapNo
WHERE odunc.geldiMi=0

[Inner] Join
INNER JOIN en çok kullanılan tablo birleştirme yöntemidir. İki tablo arasında birleştirme yaparken, tablolardan her ikisinde de yer alan değerler seçilir, tek tabloda yer alan değerler seçilmez.
Aslında, Klasik Join ile INNER JOIN aynı şeydir. Sadece birleştirmede kullanılan teknik farklıdır.

Örneğin
Kod:
SELECT uye.Adi,odunc.KitapNo
FROM uye INNER JOIN odunc ON odunc.uyeNo=uye.uyeNo