Ciao! Allora, ho ricreato in parte la tua tabella, con qualche campo in meno per semplicità.

Ecco quello che ho io:

codice:
mysql> select * from squadre;
+----+----------+
| id | nome     |
+----+----------+
|  5 | squadra5 | 
|  4 | squadra4 | 
|  3 | squadra3 | 
|  2 | squadra2 | 
|  1 | squadra1 | 
+----+----------+

mysql> select * from calendario;
+----+--------------+-----------------+------------+---------------+
| id | squadra_home | squadra_visitor | point_home | point_visitor |
+----+--------------+-----------------+------------+---------------+
|  1 |            5 |               2 |          5 |             5 | 
|  2 |            2 |               5 |         11 |             0 | 
|  3 |            2 |               3 |         10 |             2 | 
|  4 |            1 |               3 |          8 |             6 | 
|  5 |            1 |               2 |          5 |             3 | 
+----+--------------+-----------------+------------+---------------+
5 rows in set (0.00 sec)
Quindi in pratica:
squadra 1 -> 2 vittorie
squadra 2 -> 2 vittorie, 1 pareggio, 1 sconfitta
squadra 3 -> 2 sconfitte
squadra 4 -> nulla
squadra 5 -> 1 pareggio, 1 sconfitta

Con un po' di impegno potresti fare tutto con un unica megaquery... per il momento ti scrivo un esempio di sole 3 queries per ottenere i risultati voluti. 3 sono sempre meglio di 141!

Nota che usando la funzione COUNT per calcolare il numero di vittorie/pareggi/sconfitte non c'è bisogno di usare mysql_num_rows. Faccio il count su id che è la chiave primaria (così dovrebbe essere + veloce)

codice:
mysql> SELECT s.nome, count(v.id) AS vittorie 
FROM squadre AS s LEFT JOIN 
(SELECT id, squadra_home, squadra_visitor, point_home, point_visitor FROM calendario) AS v 
   ON ((squadra_home = s.id AND point_home>point_visitor) 
         OR (squadra_visitor = s.id AND point_home<point_visitor)) 
GROUP BY s.id;
+----------+----------+
| nome     | vittorie |
+----------+----------+
| squadra1 |        2 | 
| squadra2 |        2 | 
| squadra3 |        0 | 
| squadra4 |        0 | 
| squadra5 |        0 | 
+----------+----------+
5 rows in set (0.01 sec)

mysql> SELECT s.nome, count(p.id) AS pareggi 
FROM squadre AS s LEFT JOIN 
(SELECT id, squadra_home, squadra_visitor, point_home, point_visitor FROM calendario) AS p
   ON ((squadra_home = s.id OR squadra_visitor = s.id) 
         AND point_home=point_visitor) 
GROUP BY s.id;

+----------+---------+
| nome     | pareggi |
+----------+---------+
| squadra1 |       0 | 
| squadra2 |       1 | 
| squadra3 |       0 | 
| squadra4 |       0 | 
| squadra5 |       1 | 
+----------+---------+
5 rows in set (0.00 sec)

mysql> SELECT s.nome, count(sc.id) AS sconfitte 
FROM squadre AS s LEFT JOIN 
(SELECT id, squadra_home, squadra_visitor, point_home, point_visitor FROM calendario) AS sc
   ON ((squadra_home = s.id AND point_home<point_visitor) 
         OR (squadra_visitor = s.id AND point_home>point_visitor)) 
GROUP BY s.id;

+----------+-----------+
| nome     | sconfitte |
+----------+-----------+
| squadra1 |         0 | 
| squadra2 |         1 | 
| squadra3 |         2 | 
| squadra4 |         0 | 
| squadra5 |         1 | 
+----------+-----------+
5 rows in set (0.00 sec)