I would go with join rather than where condition.

2011/4/26 Halász Sándor <h...@tbbs.net>

> >>>> 2011/04/25 17:42 +0300, Andre Polykanine >>>>
> Here is the first one.
> We have two queries:
> SELECT `blogs`.* FROM `Blogs` LEFT     JOIN     `Users`     ON
> `Blogs`.`UserId`=`Users`.`Id`;
> and the following one:
> SELECT       `Blogs`.*      FROM      `Blogs`,      `Users`      WHERE
> `Blogs`.`UserId`=`Users`.`Id`;
>
> 1. Are they identical?
> 2.  Which is better (faster, more optimal, more kosher, I mean, better
> style...)?
> <<<<<<<<
>
> >>>> 2011/04/25 10:16 -0500, Johnny Withers >>>>
> The only difference once MySQL parses these two queries is the first one is
> a LEFT JOIN, which will produce all records from the blogs table even if
> there is no matching record in the users table. The second query produces
> an
> INNER JOIN which means only rows with matching records in both tables will
> be returned.
>
> ...
>
> I prefer to write the INNER JOIN out though because it leaves my WHERE
> clause to do filtering.
> <<<<<<<<
> and it is usual to write all about the joining in the FROM-clause --the
> tables and the criterion for joining them-- and reserve the WHERE-clause for
> filtering the result:
>
> SELECT `blogs`.* FROM `Blogs` LEFT JOIN `Users` ON `Blogs`.`UserId` =
> `Users`.`Id`
>
> SELECT `Blogs`.* FROM `Blogs` JOIN `Users` ON `Blogs`.`UserId` =
> `Users`.`Id`
>
> That is, if you already had a table with the joined outcome, you would use
> the WHERE-clause to determine what of it enters into further processing.
>
>
> --
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:
> http://lists.mysql.com/mysql?unsub=sureshkumar...@gmail.com
>
>


-- 
Thanks
Suresh Kuna
MySQL DBA

Reply via email to