A、由于硝酸镁不发生反应而锌与硝酸银反应生成硝酸锌和银,因此,溶液中一定有硝酸镁和硝酸锌;由于不能确定各物质质量,因此无法判断硝酸银是否完全反应,即不能得到一定没有硝酸银的结论;故A不正确;
B、由于硝酸镁不发生反应而锌与硝酸银反应生成硝酸锌和银,因此,溶液中一定有硝酸镁和硝酸锌而不是可能有硝酸镁和硝酸锌;故B不正确;
C、由于硝酸镁不发生反应而锌与硝酸银反应生成硝酸锌和银,因此,溶液中一定有硝酸镁和硝酸锌而非可能有硝酸锌;故C不正确;
D、由于硝酸镁不发生反应而锌与硝酸银反应生成硝酸锌和银,因此,溶液中一定有硝酸镁和硝酸锌;由于不能确定各物质质量,因此无法判断硝酸银是否完全反应,因此只能得到可能有硝酸铜和硝酸银的判断;故D正确;
故选D.