Hay un error de diseño en tu diagrama de tablas: El detalle de venta depende de la venta y no al revés. Es decir que la PK de Venta debe ir como FK en el DetalleVenta.
Corrige eso.
Fuera de eso, estás haciendo consultas innecesariamente complicadas y no estás realizando los JOINs correctamente.
Yo propondría:
Código MySQL:
Ver original NombreCliente,
NombreProducto
c.nombre NombreCliente,
p.nombre NombreProducto,
cliente c
INNER JOIN ventas v
ON c.codigo
= v.codcliente
INNER JOIN producto d.idproducto
= p.idproducto
Siempre basado en que corrijas ese error de diseño...