Çok Yakında Yeni Bir Arayüzle karşınızdayız! http://yeni.delphican.com/

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
MySQL de Aynı tabloda ki 2 farklı alanı kıyaslayan sorgu
#1
Merhabalar , 


SELECT h.hesapkodu , h.hesapadi FROM hesapkarti as h WHERE h.hesapkodu=h.grupkodu


Yukarı da ki gibi bir cümlede aynı tabloda yer alan 2 alanın birbirine eşit olanlarını listelemek istiyorum, son derece basit gibi görünen bu istek arkada büyük bir karmaşaya sebep oluyor olacak ki içinde yaklaşık 1.000.000 satır bulunan tabloda kabul sınırlarını aşacak sürede geç dönüyor. 2 alanda da index mevcut, acaba dedim böyle bir kullanım pratikte yanlış bir hareket mi, aklıma bir çok örnek geldi örn: alış fiyatıyla satış fiyatı aynı olan stok kartları vb...

execution plain de index kullanmadığını görüyorum , FORCE INDEX yada USE INDEX ile zorlasam da bir index kullanmıyor.

Böyle bir kullanım anormal mi ? aynı sonuç için farklı önerileriniz var mı?

İyi çalışmalar.
Cevapla
#2
Çok yavaş çalışıyorsa,
(hesapkodu+grupkodu)/hesapkodu=2 olan kayıtları çekmeyi denermisiniz hocam?
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
WWW
Cevapla
#3
Merhaba,

Birkaç gün önce benzer bir olay başıma gelmişti aşağıdaki şekilde çözebildim.

SELECT * FROM FATURADETAY A
WHERE NOT EXISTS
(
SELECT * FROM accounts_recievable B
WHERE A.ID=B.invoice_id AND B.evrakno=A.EVRAKNO
) AND A.GMHK =@gmhk 
AND 1=1 
Cevapla
#4
Aşağıdaki gibi bir sorgu sonuç veriyor mu Volkan'ım ?

SELECT
  h.hesapkodu ,
 h.hesapadi
FROM hesapkarti as h
WHERE
 h.ID IN (
              SELECT HK.ID
              FROM hesapkarti HK
              GROUP BY
                  HK.hesapkodu + HK.hesapadi
              HAVING COUNT(*) > 1
            )
Mal sahibi, mülk sahibi
Hani bunun ilk sahibi ?
Mal da yalan mülk de yalan
Var biraz da sen oyalan...
WWW
Cevapla
#5
Öncelikle değerli vakitlerinizi ayırdığınız için teşekkür ederim.
@esistem , sizin yöntem de aynı gecikme süresinde yanıt verdi maalesef ,
@denizfatihi , bu yöntem de neredeyse aynı sürede yanıt verdi (buraya konuyu açmadan önce bunu ve JOIN li metodu deneyip sonuç alamamıştım)
@Tuğrul HELVACI abi evet bu yöntemle süre kayda değer düzeyde kısaldı çok teşekkürler. (40 sn de gelen sorgu yaklaşık 7 sn de geliyor)

Herkese iyi çalışmalar.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [ÇÖZÜLDÜ] SQLite'dan MySQL'e Aktarma ? Mr.Developer 3 371 22-07-2019, Saat: 20:31
Son Yorum: Mr.Developer
  (ÇÖZÜLDÜ] MySQL Date_format komutu wiseman 1 309 30-05-2019, Saat: 11:30
Son Yorum: wiseman
  MySQL Drop database Yetkisi yhackup 2 523 22-03-2019, Saat: 11:21
Son Yorum: yhackup
  MySQL Workbench Kod Tamamlama Hatası - (Code Completion) hi_selamlar 0 378 23-02-2019, Saat: 11:42
Son Yorum: hi_selamlar
  MySQL malformed trail byte or out of range char yhackup 5 767 31-01-2019, Saat: 09:55
Son Yorum: hi_selamlar



Konuyu Okuyanlar: 1 Ziyaretçi