Boolean Difference not working with joined mesh I want to perform a really simple boolean as shown below:

However, I get this as a result:

Rather than boolean-ing all of the cylinders, it only does it for one. I have no idea what's causing this. Can anyone take a look at my file and possibly help?
Too close vertexes is not friendly for boolean to work properly:(
The key is to avoid too close vertexes. There are two methods below.

Use individual origins to shrink all cylinders a little bit, you'll get what you need.

You can also rearrange the topology of the base part, more or less subdivision.