"Vaidas Zilionis aka Why2liz" <[EMAIL PROTECTED]> wrote:
> I had wroted query
>
> SELECT r.`id`, COUNT(s.`id`) AS `sk` FROM `sodybos` as s RIGHT OUTER JOIN
> `rajonai` as r ON (s.`rajonai_id` = r.`id`) GROUP BY r.`id`
>
> But this query run's slow, now I want to optimize it, maybe write it without
> JOIN command
>
> If I wrote new query (it's more faster)
>
> select r.id, count(s.id) as sk from rajonai as r, sodybos as s WHERE
> s.rajonai_id = r.id group by r.id
>
> It's work good, but I can't get rows which count(s.id) = 0
>
> Example with 1 query I get
>
> 1|12
> 2|0
> 3|15
> 4|5
> 5|1
>
> With second only
>
> 1|12
> 3|15
> 4|5
> 5|1
>
> How to get and 2 row? Which count result = 0
You got different results because you use different JOINs. In your case you need RIGHT
or LEFT JOIN:
http://www.mysql.com/doc/en/JOIN.html
How MySQL optimises RIGHT and LEFT JOIN is described at:
http://www.mysql.com/doc/en/LEFT_JOIN_optimisation.html
--
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.net http://www.ensita.net/
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Egor Egorov
/ /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED]
/_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.net
<___/ www.mysql.com
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]