Writing the smallest table first and the biggest table last would seem the obvious way to do this, apart from one thing. The article I referred to in my original post says that the tables are processed in reverse order - hence in this case the largest table would be processed first. This means that all 1 million rows would be read immediately! Is this really the correct way (or am I just getting confused with optomising the WHERE clause now?)

Thanks again,

Matt