Lo que pretendes más o menos se puede conseguir con una sentencia SQL; No comentas la Base de Datos que utilizas, as´ńi que puede variar la sentencia, pero sería algo así:
Código SQL
[-]
Select Tabla1.Nombre, Tabla2.Nombre, Tabla1.Precio as P1, Tabla2.Precio as P2
from Tabla1 FULL JOIN Tabla2 on Tabla1.Cod=Tabla2.Cod
Esto es en la teoría. Luego hay que saber el caso concreto en que te encuentras. A veces, tal y como tú comentas, una solución que en teoría funciona, puede no ser viable a loa hora de la verdad por muchísimas razones (falta de velocidad, volumen de datos,...)
Tal vez si nos explicaras el caso real y lo que necesitas hacer, te podamos dar una solución más adecuada. O tal vez orientarte por otro camino para llegar a conseguir lo mismo que necesitas.