Re: Cursor ve Subselect yada Join...

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.

In response to

Browse pgsql-tr-genel by date

  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...