A colleague was creating a query for two tables he has set up - UK Time and Egypt Time. The SQL for his query was as so:
SELECT Sum([UK Time].[Hours Booked]), [UK Time].[First Name], [UK Time].[Last Name], [UK Time].[Month]
FROM [UK Time], [Egypt Time]
GROUP BY [UK Time].[First Name], [UK Time].[Last Name], [UK Time].[Month]
HAVING (([UK Time].[First Name])="Geoff"), ([UK Time].[Month])="September 2009"));
To expand on Kevin's answer:
FULL OUTER JOIN basically gives a product of the tables, with a row in the result set for every row in the left table matched up with every row in the right table.
This has it's uses but they are rare.
You want to do something like
... FROM LeftTable INNER JOIN RightTable ON LeftTable.Key = RightTable.Key WHERE ...
This will give you only records that match up between the two tables.