DWarp9 - 12:06 pm on Dec 23, 2010 (gmt 0)
Well, it seems you are joining on a table with 1.5 million rows without ever using an index. This is bad news.
My best suggestion - which could be better if your provided you database schemata - is to get rid of t2 all together and just add a boolean column to t1. Instead of adding a row to t2 you would just check this field (update it to true). Finally you would add an index to this column and do the query as such:
Select id, expense From t1 Where newColumn = false;
I guarantee you this query will be fast, even with 1.5 mill rows. :)
Alternatively, the big index on all your joined columns are my only suggestion. But let my know how it works.