Maybe you should intern at another company. Clearly the people designing the DB at that company are idiots.
Creating a separate table for each DAY is just plain NUTSO!!!! It's debatable if you should even create one per month, but one per DAY is a horrible DB design.
You do *NOT* need or want a JOIN. You need a UNION.
The ORDER BY applies to the union of all the tables, so you only need it once at the end. On the other hand, if you need to use a WHERE clause in the SELECTs, you'll probably get a lot more efficiency putting it separately on each table. (If you want to apply it to the UNION, the syntax is a bit different.)
SELECT list, of, fields FROM LOG20101001
SELECT list, of, fields FROM LOG20101002
SELECT list, of, fields FROM LOG20101003
SELECT list, of, fields FROM LOG20101031
ORDER BY ...
You mentioned Crystal Reports, so I"ve assumed that you are using SQL Server. Which is why I used UNION ALL. Not all DBs support UNION ALL, but generally the ones that don't will simply use UNION (alone) to mean the same thing. (Without UNION ALL, SQL Server will automatically remove any duplicated records...which is surely not what you would want in working with logs.)
NOTE: If the various LOG201010xx tables do not include the date as one of their data fields--if you are supposed to imply it from the name of the table--you can add it into the SELECTs easily, thus:
SELECT '10/1/2010' AS logDate, list, of, fields FROM LOG20101001
SELECT '10/2/2010' AS logDate, list, of, fields FROM LOG20101002
SELECT '10/3/2010' AS logDate, list, of, fields FROM LOG20101003
SELECT '10/31/2010' AS logDate, list, of, fields FROM LOG20101031
ORDER BY ...