Witam, zrobiłem sobie skrypt dzienniczka ucznia. Zasady działania nie muszę za pewne tłumaczyć

.
Mam 2 tabele w mysql:


Skliciłem taki oto skrypt:
<?php
echo '<table style="border-collapse: collapse;" border="1">'."\n"; echo ' <caption style="caption-side: top;padding: 2px;"><b>Oceny ucznia nr. 20</b></caption>'."\n"; echo ' <tr align="center"><td width="30"><strong>Lp.</strong></td><td width="200"><strong>PRZEDMIOT</strong></td><td width="200"><strong>OCENY</strong></td>'."\n";
// pobieramy listę przedmiotów
$sql_przdmioty = mysql_query ("SELECT `przedm_id`, `przedm_nazwa` FROM `dzienniczek_przedmioty`");
{
$oceny=''; $o=''; //resetowanie zmiennych
$sql_oceny = mysql_query ("SELECT `ocena_stopien` ,`ocena_waznosc` FROM `dzienniczek_oceny` WHERE `ocena_przedm_id` = '$row[przedm_id]'"); {
if($row2[ocena_waznosc] == '1') $o = '<span style="color:red">'.$row2[ocena_stopien].'</span>'; // kolorowanie sprawdzienów
elseif($row2[ocena_waznosc] == '2') $o = '<span style="color:blue">'.$row2[ocena_stopien].'</span>'; //kolorowanie innych ocen
$oceny .= $o.', ';
}
echo " <tr><td>$row[przedm_id]</td><td>$row[przedm_nazwa]</td><td>$oceny</td></tr>\n"; }
?>
co dało taki rezultat (taki jak ma być)

Jak zauważyliście skrypt ten pobiera najpierw listę przedmiotów i podczas każdego przebiegu pętli jest wykonywane zapytanie o oceny do tego przedmiotu... Nie wydaje się wam się też że to jest nieoptymalne? Jak pobrać to wszystko bez zawierania w pętlach zapytań do sql?