From: | Volkan YAZICI <yazicivo(at)ttnet(dot)net(dot)tr> |
---|---|
To: | Adnan DURSUN <a_dursun(at)hotmail(dot)com> |
Cc: | pgsql-tr-genel(at)postgresql(dot)org |
Subject: | Re: Cursor ve Subselect yada Join... |
Date: | 2006-09-06 18:19:38 |
Message-ID: | 20060906181938.GD1362@alamut |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-tr-genel |
On Sep 06 09:03, Adnan DURSUN wrote:
> >On Sep 06 08:22, Adnan DURSUN wrote:
> >> Şu şekilde deneyin;
> >>
> >> SELECT field FROM othertable t1
> >> WHERE NOT EXISTS(SELECT 1
> >> FROM tablo t2
> >> WHERE t2.onefield =
> >>t1.onefield )
> >>
> >> Bu şekilde PostgreSQL'in optimizer ve parser için harcadığı zamanı daha
> >>kısa olacaktır
>
> Size bu cevabı, gerçekten merak ettiğiniz düşünerek veriyorum.
> Yazdığım örnekte tüm sorgu "optimizer" tarafından bir defada
> değerlendirirlir, aslında orada 2
> SQL sorgusu yok, tek sorgu var. Dilerseniz n tane "subselect" yazın
> durum hep aynıdır.
Bunları ben de biliyorum. Sanırım ikimizden birisi Timu'nun sorusunun
yanlış anladı. Ben anladığımı anlatayım: Amcamın derdi şu:
SELECT X;
SELECT A ... NOT IN (SELECT X);
SELECT B ... NOT IN (SELECT X);
Burada yapmak istediği SELECT X'i iki kere subselect içinde tekrar
tekrar execute etmektense, tek seferde ben bunu execute edeyim, bunun
sonucunu A ve B sorguları içinde kullanayım.
> Evet sorgunun şekli değişiyor çünkü arkadaşımızın istediği sorgu
> gerçekleştirilememiş. Ben ise, satandart olan bir SQL sorgusu önerdim.
Demek istediğim şu ki, ister NOT IN, ister NOT EXISTS kullanın. SELECT
X'i iki kere kullanacaksınız. Adam zaten bundan kurtulmak istiyor.
Tekrar başa dönüyoruz, yönteminiz sadece sorunun şeklini değiştiriyor,
olaya bir çözüm getirmiyor.
İyi çalışmalar.
From | Date | Subject | |
---|---|---|---|
Next Message | Timu EREN | 2006-09-07 02:47:24 | Re: Cursor ve Subselect yada Join... |
Previous Message | Adnan DURSUN | 2006-09-06 18:03:02 | Re: Cursor ve Subselect yada Join... |