Do you have indexes on t1.ClientID and on the join columns? If so, are they been used?
The order that the joins and where clause are done in depends on, amoung other things, availability of indexes, selectivity of the data in that column and amount of rows that will be returned.
Hash matches sounds like lots of data on both sides of the join with neither side, or one side, sorted.
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