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?
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
  MySQL - Sql-mode only_full_group_by hatası. hi_selamlar 5 1.802 25-12-2022, Saat: 10:43
Son Yorum: hi_selamlar
  MySQL Bağlantı Sorunu - MEB akıllı tahta Frrst 6 1.451 10-11-2022, Saat: 23:16
Son Yorum: mcuyan
  Mysql Farklı bir autoinc mcuyan 11 2.033 09-11-2022, Saat: 23:05
Son Yorum: mcuyan
  Delphi 7 MySql DAC Nasıl Kurulur mahone 1 635 08-10-2022, Saat: 22:09
Son Yorum: mcuyan
  mysql trigger subquery returns more than 1 row hatası cvheneburi 5 2.084 28-08-2022, Saat: 01:04
Son Yorum: cvheneburi



Konuyu Okuyanlar: 1 Ziyaretçi