🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #70385

Re: zapytanie typu select where in select

#70385
From: Marcin
Date: Tue, 10 Jul 2007 17:26
48 lines
1653 bytes
jacky wrote:
> Witam.
> 
> Baza Firebird 2.0.1
> 
> Mam dwie tabele:
> 
> 1. DokNad
> z kolumna
> numerNad
> a1
> a2
> a3
> a4
> 
> 2. DokPod
> z kolumna
> numerPod
> a1
> a1
> a1
> a2
> a2
> a2
> a4
> 
> Chcialbym otrzymac wyniki rowne wynikowi zapytania
> 
> select numerNad from DokNad
> where numerNad not in (select numerPod from DokPod)
> 
> czyli wiersz a3
> 
> Problem w tym, ze rekordow w DokNad oraz w DokPod jest po kilkanascie 
> tysiecy i nie moge doczekac sie na wynik.
> 
> Czy powyzsze zapytanie mozna skonstruowac bardziej optymalnie?

Tak.

SELECT DokNad.numerNad
FROM DokNad
LEFT OUTER JOIN DokPod ON DokNad.numerNad = DokPod.numerPod
WHERE DokPod.numerPod IS NULL

Oczywiście pola numerNad, numerPod powinny być poindeksowane.

M.
Technical Details
Message-ID: <f70fmo$8e4$1@nemesis.news.tpi.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
References: <f6vu30$ude$1@news.onet.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: Marcin <spam@noaddress.xx>
Newsgroups: pl.comp.lang.delphi.bazy-danych
Subject: Re: zapytanie typu select where in select
Date: Tue, 10 Jul 2007 19:26:47 +0200
Organization: tp.internet - http://www.tpi.pl/
Lines: 49
Message-ID: <f70fmo$8e4$1@nemesis.news.tpi.pl>
References: <f6vu30$ude$1@news.onet.pl>
NNTP-Posting-Host: aaio184.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
X-Trace: nemesis.news.tpi.pl 1184088601 8644 83.4.222.184 (10 Jul 2007 17:30:01 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Tue, 10 Jul 2007 17:30:01 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.4 (Windows/20070604)
In-Reply-To: <f6vu30$ude$1@news.onet.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit