El error sale en el último punto:
Cita: and marcas.nombre=nombre.
Ese campo no está determinado de dónde sale, es decir, a qué tabla pertenece. Si la idea era usar una variable para poner ese dato, entonces el código en general estaba incompleto o mal redactado.
Por otro lado, cuando tienes una relación de datos como la que estás poniendo (al vincular dos tablas sobre un campo), eso no se hace en el WHERE sino por JOINs. Es cierto que ponerlo en el WHERE funciona, pero el problema es la falta de optimización de la consulta, ya que
el WHERE no es optimizable por el MySQL
y el FROM... JOIN si.