MySQL Veri Birleştirme

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
csyasar
Üye
Mesajlar: 646
Kayıt: 25 Şub 2004 10:14
Konum: Tokat

MySQL Veri Birleştirme

Mesaj gönderen csyasar »

Arkadaşlar merhaba,

Şu şekilde bir sql sorgum var:

Kod: Tümünü seç

SELECT bi.id, bi.islem, bi.bid,
 COUNT(bi.bid) AS TekrarlamaSayısı, b.ad, b.soyad
FROM basvuruislem bi
left outer join basvuru b on bi.bid=b.id
where b.durum='Açık'
GROUP BY bi.bid
HAVING ( COUNT(bi.bid) >= 2) 
order by bi.id desc, b.id desc
bu kod 2 tabloyu birleştiriyor. bi lakaplı tabloda birden fazla bid alanı uyan kayıt varsa onları listeliyor. lakin listelediği kayıt bid değeri ilk uyan kayıt. ben son uyan kaydı almak istiyorum. bunu nasıl sağlarım?
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: MySQL Veri Birleştirme

Mesaj gönderen mkysoft »

Join yapmadan önce tabloyu subquery olarak hazırlamayı denediniz mi?
Sub query içinde distrinc ve order by yaparsanız olabilir diye tahmin ediyorum. elimde db yok deneyemedim, http://www.db4free.net/ 'de yavaş çalışıyor test edemedim.
csyasar
Üye
Mesajlar: 646
Kayıt: 25 Şub 2004 10:14
Konum: Tokat

Re: MySQL Veri Birleştirme

Mesaj gönderen csyasar »

subquery ile denedim olmadı. bu haliyle aslında çalışıyor ama count işleminde 2 veya büyük kaydı bulduğunda bana gösterdiği değeri büyük olan kayıt olmalı. order by kullansam da olmuyor. bunu sağlayamıyoruz. yukarıdaki sorgu sonucu gelen cevap aşağıda.

Resim
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: MySQL Veri Birleştirme

Mesaj gönderen mkysoft »

Aşağıdaki şekilde önce order yapıp sonra gruplarsan isteğin olacaktır.

Kod: Tümünü seç

SELECT bi.id, bi.islem, bi.bid, tt.ad, tt.soyad
FROM basvuruislem bi
left outer join
(select * from (select * from basvuru
where durum='Açık'
order by id desc) t group by durum) tt
on bi.bid=tt.id
csyasar
Üye
Mesajlar: 646
Kayıt: 25 Şub 2004 10:14
Konum: Tokat

Re: MySQL Veri Birleştirme

Mesaj gönderen csyasar »

malesef olmadı. bu defa da bi tablosundaki tüm kayıtlar listeleniyor.
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: MySQL Veri Birleştirme

Mesaj gönderen mkysoft »

left join zaten bunu yapar. Karşılığı olmayan kayıtların gelmesini istemiyorsanız inner join yapmalısınız.
Cevapla