SQL'de mükerrer kayıtları bir kere birleştirsin.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Ertuğrul2025
Üye
Mesajlar: 42
Kayıt: 08 Oca 2025 10:35

SQL'de mükerrer kayıtları bir kere birleştirsin.

Mesaj gönderen Ertuğrul2025 »

Hayırlı günler SQL'de iki tabloyu birleştiriryorum.

SELECT TABLO1.A1, TABLO1.A2, TABLO1.A3, TABLO2.S1, TABLO2.S2, TABLO2.S3
FROM TABLO1 LEFT JOIN TABLO2 ON TABLO1.A1 = TABLO2.A2

TABLO1
A1 A2 A3
1245 TLM2 ELMA
5263 TLM7 ARMUT

TABLO2
S1 S2 S3
1245 TLM23 ELMA
1245 TLM87 ERİK
1245 TLM52 MUZ
5263 TLM63 ARMUT
5263 TLM2 TURP
5263 TLM1 HAVUÇ
5263 TLM8 PRASA

Ama benim istediğim.
Tablo2'de aynı kayıttan birden fazla olduğu zaman
Tablo1 ile bir kere birleştirsin.

Benim istdiğim
A1 A2 A3 S1 S2 S3
1245 TLM2 ELMA 1245 TLM23 ELMA

Tablo2'nin S2 ve S3'ün ne içerdiği önemli değil. Sadece
Tablo1 A1 ile eşleşen Tablo2 S1'i bir kere göstersin.
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: SQL'de mükerrer kayıtları bir kere birleştirsin.

Mesaj gönderen ertank »

Merhaba,
LEFT JOIN değil INNER JOIN kullanmayı deneyin.
Bazı veritabanları sadece JOIN kullanımını INNER JOIN olarak uygulayabiliyorlar.
Ertuğrul2025
Üye
Mesajlar: 42
Kayıt: 08 Oca 2025 10:35

Re: SQL'de mükerrer kayıtları bir kere birleştirsin.

Mesaj gönderen Ertuğrul2025 »

ertank yazdı: 09 May 2025 09:34 Merhaba,
LEFT JOIN değil INNER JOIN kullanmayı deneyin.
Bazı veritabanları sadece JOIN kullanımını INNER JOIN olarak uygulayabiliyorlar.
Hocam INNER JOIN'de de aynını sayıyor. Tablo1 10 kayıt tablo2 50 kayıt varsa mükerrerler ile çok fazla kayıt görünüyor.
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: SQL'de mükerrer kayıtları bir kere birleştirsin.

Mesaj gönderen ertank »

SQL ile ilgili sorular için forumda farklı bir bölüm var. Orayı kullanmanızda fayda var.
SQL konulu sorularda mümkün mertebe detaylı bilgi vermek gerekiyor.
Cevaplayacak kişinin işini kolaylaştırmak için de SQL komutları ile bu bilgileri iletmekte ve hangi veritabanını kullandığınızı bildirmenizde fayda var.
Sizin verdiğiniz bilgileri aşağıdaki şekilde SQL komutuna eklediğimde öncelikle hiç eşleşen veri olmadığını gösteriyor bana.
"Tek kayıt gelsin" için DISTINCT kelimesini kullanabilirsiniz. Verileri tekilleştirir.

Kod: Tümünü seç

create table tablo1 (
  a1 varchar(30),
  a2 varchar(30),
  a3 varchar(30)
);

create table tablo2 (
  s1 varchar(30),
  s2 varchar(30),
  s3 varchar(30)
);

commit;

insert into tablo1 values('1245', 'TLM2', 'ELMA');
insert into tablo1 values('5263', 'TLM7', 'ARMUT');

insert into tablo2 values('1245', 'TLM23', 'ELMA');
insert into tablo2 values('1245', 'TLM87', 'ERİK');
insert into tablo2 values('1245', 'TLM52', 'MUZ');
insert into tablo2 values('5263', 'TLM63', 'ARMUT');
insert into tablo2 values('5263', 'TLM2', 'TURP');
insert into tablo2 values('5263', 'TLM1', 'HAVUÇ');
insert into tablo2 values('5263', 'TLM8', 'PRASA');

commit;

select 
  distinct t1.*, t2.*
from
  tablo1 t1
  join tablo2 t2 on t2.s2 = t1.a1
Sonuç olarak gelen yanıt

Kod: Tümünü seç

A1                             |A2                             |A3                             |S1                             |S2                             |S3                             |
VARCHAR(30)                    |VARCHAR(30)                    |VARCHAR(30)                    |VARCHAR(30)                    |VARCHAR(30)                    |VARCHAR(30)                    |
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5/9/2025 10:16:46 AM: Select executed in 0.000 s - Record count: 0
Ertuğrul2025
Üye
Mesajlar: 42
Kayıt: 08 Oca 2025 10:35

Re: SQL'de mükerrer kayıtları bir kere birleştirsin.

Mesaj gönderen Ertuğrul2025 »

Allah razı olsun hocam sağolun
Cevapla