linux user group brescia

immagine del castello

Archivio della mailing list

trigger ?

Alberto Federico Turelli alberto.turelli a atworkonline.it
Lun 17 Ott 2005 15:31:11 UTC
On Mon, 2005-10-17 at 16:44 +0200, marco ghidinelli wrote:
...
> io farei:
> 
> select
> 	tab1.campoa,
> 	tab1.campob,
> 	tab2.campoc
> from
> 	tab1,tab2,tab3
> where
> 	tab1.campod=tab2.campoe and
> 	tab2.campof=tab3.campog and
> 	tab1.campoa=1

Questo tipo di join rischia di rallentare vistosamente la query, infatti
il numero di record estratti sono |tab1| * |tab2| * |tab3|.
Successivamente, la WHERE ne filtra la maggior parte e la SELECT
restituisce solo i record cercati.
E' molto piĆ¹ performante questa:

SELECT
  tab1.campoa,
  tab1.campob,
  tab2.campoc
FROM tab1
  [ INNER | LEFT | RIGHT ] JOIN tab2 ON tab2.campoe = tab1.campod
  [ INNER | LEFT | RIGHT ] JOIN tab3 ON tab3.campog = tab2.campof
WHERE tab1.campoa = 1

Ciao.
bibe
-- 
Alberto Federico Turelli <alberto.turelli a atworkonline.it>
atwork di Alberto Turelli




Maggiori informazioni sulla lista Lug