Based on your question, it seems that your problem is not necessarily the mailing function itself but rather the joining of three tables' output right?
"the problem is the mailing part can't figure out how to mail every field from all three tables."
The best and probably fastest way to do this is to write the contents in the Body string and simply concatenate the contents into this string as you get more and more entries.
In other words say you have tables tab1, tab2, tab3 and then you issue 3 sql statements "select * from tab1", etc. with 3 resulting result ID sets.
You can do the following
while ($somerow = mysql_fetch_row($result)) {
$somevar = $somerow[0]
.
.
.
etc
$bodystring .= $somevar
}
do that for all three, each one appending to the $bodystring (look in the PHP manual for concatenation or appending strings) and then simply mail this string and that should solve your problem.