• Same answer as I gave you before.

    In this case, both tables were scanned once. The merge join is efficient when the two resultsets are in the order of the join column. The plan you're asking for (nested loop join, scan one, use that to access the other) would have resulted in the Need table being read multiple times, which is not efficient.

    Which sounds efficient:

    Read the Need table once (current plan), this means reading each page once and only once

    Read the Need table once for each row in NeedCategory (what you're asking for), each one reading 2-3 pages and returning one row

    ?

    As for books, the one Chris recommended.

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass