Non si fa così.
Se tu avessi 2 milioni di righe, leggerle tutte una per volta ti ci vuole una vita.

In genere si fa una query basata sulle chiavi primarie, (che essendo indicizzate è la più veloce).
Non conosco le tue tabelle, ma da quello che mi pare di aver capito potresti (ma controlla) fare più o meno così:

codice:
SELECT T1.cod1, Count(T1.cod1) AS Qta 
FROM Tabella1 As T1 INNER JOIN Tabella2 As T2 ON T1.cod1= T2.cod2
WHERE <tue condizioni>
GROUP BY T1.cod1

otterrai 2 colonne: nella prima avrai l'elenco dei Cod1 presenti, nella seconda la Qta rispettiva.

S.E. & O.