Re: to optimize a select join
- From: Jerry Stuckle <jstucklex@xxxxxxxxxxxxx>
- Date: Sat, 29 Apr 2006 16:42:03 -0400
Mladen Gogala wrote:
On Sat, 29 Apr 2006 17:55:36 +0200, Jean-Claude wrote:
1/
select *
from file1 a join file2 b on b.key=a.key
where b.data=123
and b.name='TEST'
I cannot understand why do people use that idiotic ANSI join syntax.
Relational databases model naive set theory. That means defining subsets
by setting rules on elements. Your query should be best written like
this:
select a.*,b.*
from file1 a,file2 b
where a.key=b.key and
b.data=123 and
b.name='TEST'
That way, the database optimizer doesn't have to contend with
idiotic things like "join". You should define your data and your
selection properly, index the proper columns and enjoy.
Maybe because the "rules of elements" don't allow all possibilities?
For instance - try this. List all records in table A, along with their matching records in table B if those records exist. Impossible without a Union, but very easy with a LEFT OUTER JOIN.
There is minimal additional overhead to the JOIN syntax method. And much more flexibility. Additionally, you only need to learn one basic syntax for all JOIN cases.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@xxxxxxxxxxxxx
==================
.
- Follow-Ups:
- Re: to optimize a select join
- From: Mladen Gogala
- Re: to optimize a select join
- References:
- to optimize a select join
- From: Jean-Claude
- Re: to optimize a select join
- From: Mladen Gogala
- to optimize a select join
- Prev by Date: Re: My rant about unix home directories
- Next by Date: Regex - how to match until something
- Previous by thread: Re: to optimize a select join
- Next by thread: Re: to optimize a select join
- Index(es):