Wow, one of them even has some of the sample code that I had submitted to recreate the problem. However, I didn't see any reference in either article to the issue of indexes on the child field, which was the crux of the problem. Whether I filtered on the child field in the Where clause or the Join clause, I would get all records from the parent table when the child field filter was able to be optimized, regardless of whether the data actually matched the child filter.
Thanks for pointing me to those articles.
>>Boy, this sounds similar to an issue I had a while ago. It was a "feature"
>>that I discovered with a Left Outer join and any kind of filter on the child
>>table (in the Where or Join clause), where there is an index on the child
>>table. Check out thread #
381384. You will probably want to make sure that
>>you don't create in index on CHILD.MYFIELD. I was told by some people
>>(including support at Microsoft) that doing a Left Outer join and filtering on
>>the child table is not a logical thing to do.
>
>You might find
http://support.microsoft.com/support/kb/articles/q268/0/22.asp and
http://support.microsoft.com/support/kb/articles/q268/9/06.asp to be interesting. I wrote these articles in response to your issue.