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: 644
Kayıt: 25 Şub 2004 10:14
Konum: Tokat

MySQL Veri Birleştirme

Mesaj gönderen csyasar » 08 Ağu 2015 11:57

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: 2928
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: MySQL Veri Birleştirme

Mesaj gönderen mkysoft » 08 Ağu 2015 03:05

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: 644
Kayıt: 25 Şub 2004 10:14
Konum: Tokat

Re: MySQL Veri Birleştirme

Mesaj gönderen csyasar » 08 Ağu 2015 03:33

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: 2928
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: MySQL Veri Birleştirme

Mesaj gönderen mkysoft » 08 Ağu 2015 11:45

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: 644
Kayıt: 25 Şub 2004 10:14
Konum: Tokat

Re: MySQL Veri Birleştirme

Mesaj gönderen csyasar » 09 Ağu 2015 10:04

malesef olmadı. bu defa da bi tablosundaki tüm kayıtlar listeleniyor.

mkysoft
Kıdemli Üye
Mesajlar: 2928
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: MySQL Veri Birleştirme

Mesaj gönderen mkysoft » 10 Ağu 2015 08:46

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

Cevapla