List:Bugs« Previous MessageNext Message »
From:Sinisa Milivojevic Date:October 18 2001 11:36am
Subject:Re: Incorrect results with LEFT JOIN and indexes
View as plain text  
Bradley Baetz writes:
> On Wed, 17 Oct 2001, Michael Widenius wrote:
> 
> > bbaetz> SELECT bugs.bug_id FROM bugs LEFT JOIN cc ON (bugs.bug_id =
> > bbaetz> cc.bug_id AND cc.who = 2) WHERE (bugs.reporter = 2 OR cc.who =
> > bbaetz> 2);
> >
> 
> <snip>
> 
> > In other words:
> >
> > The The cc.who = 2 restriction in the ON clause does NOT affect the
> > rows that is considered from the LEFT table.  It only affects if the
> > rows should be considered from the RIGHT table or if we should
> > generate a NULL row for the right table.
> >
> > Fix:  Move all tests that only affects the 'cc' table from the ON
> > clause to the WHERE part..
> 
> I realise this, and want the behaviour, since I still want bugs with no
> people cc'd to match if the reporter matches.
> 
> However, the above query _does_ have the restriction in the WHERE part (as
> well as the on part - this is a simplified version of a more complicated,
> partly autogenerated, query). And removing the index changes the result,
> which seems really strange. Also, if you change the index on the cc table
> to be unique(bug_id,who), then the result changes based on whether or not
> the who column is NOT NULL.
> 
> Postgresql gives my expected result.
> 
> >
> > Regards,
> > Monty
> >
> 
> Thanks,
> 
> Bradley
> 

Hi!

You could try to run CHECK TABLE to be sure that indices are OK.

-- 
Regards,
   __  ___     ___ ____  __
  /  |/  /_ __/ __/ __ \/ /    Mr. Sinisa Milivojevic <sinisa@stripped>
 / /|_/ / // /\ \/ /_/ / /__   MySQL AB, FullTime Developer
/_/  /_/\_, /___/\___\_\___/   Larnaca, Cyprus
       <___/   www.mysql.com

Thread
Incorrect results with LEFT JOIN and indexesbbaetz17 Oct
  • Incorrect results with LEFT JOIN and indexesMichael Widenius17 Oct
    • Re: Incorrect results with LEFT JOIN and indexesBradley Baetz17 Oct
      • Re: Incorrect results with LEFT JOIN and indexesSinisa Milivojevic18 Oct
        • Re: Incorrect results with LEFT JOIN and indexesBradley Baetz18 Oct
      • Re: Incorrect results with LEFT JOIN and indexesMichael Widenius20 Oct
        • Re: Incorrect results with LEFT JOIN and indexesBradley Baetz20 Oct