Never tried it in MySQL and Im not
in a position to do so
at the moment
but in Oracle you can do a left outer join in the where
clause something
like this

SELECT t1.col1, t2.col2
FROM table1 t1, table2 t2
WHERE t1.join_col_name = t2.join_col_name(+)

Does this not work in MySQL?

Never tried it because I prefer my joins to be done in the
FROM clause
using 'JOIN.....ON....' or 'JOIN.....USING.....'

Regards
John

> On Tue, Feb 3, 2009 at 12:24 PM, Jerry Schwartz
> <jschwa...@the-infoshop.com> wrote:
>> Somebody, I think it was somebody from MySQL, said that you should never
>> put
>> anything into a WHERE clause that could be put into the ON clause of a
>> JOIN.
>> My guess is that this helps with the optimization, but it seems
>> counter-intuitive to me. I've never followed that advice, but I'm
>> starting
>
> There are two things here -- one is coding style.  If you're using all
> [INNER] JOIN then it doesn't matter, they are equivalent and the
> optimizer is smart enough to know that a condition holding two columns
> equal is the same whether it's in the WHERE or the ON.  Take a look at
> the output of EXPLAIN EXTENDED... SHOW WARNINGS to see how the
> optimizer rewrites the query.
>
> There is no way to write a LEFT JOIN without putting the criteria into
> the ON clause however.
>
> As a matter of style I do not like comma-joins with the criteria in
> the WHERE clause.  I want ON clauses to show me how two tables are
> related, and the WHERE clause to show me how the results are filtered
> thereafter.  But oddly enough some people think this is horrible and
> they think it's much clearer to do it the reverse way!  Everyone's
> entitled to their own wrong opinion ;-)  Seriously it is just a matter
> of style until you get to LEFT JOIN.
>
> --
> Baron Schwartz, Director of Consulting, Percona Inc.
> Our Blog: http://www.mysqlperformanceblog.com/
> Our Services: http://www.percona.com/services.html
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:
> http://lists.mysql.com/mysql?unsub=john.dais...@butterflysystems.co.uk
>
>
> ______________________________________________
> This email has been scanned by Netintelligence
> http://www.netintelligence.com/email
>
>



-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to