After joining the attribute tables from two layers, I have a lot of duplicate columns on my table, making it hard to read.
However, when in "edit" mode, I am unable to select and delete columns.
Is there a way to do this?
Have you tried the Table manager plugin?
It only works when you are not in editing mode. For Postgis/sqlite database tables you have to use the database manager.
My understanding is that the join is done 'in memory' so you can't edit it until you save the joined file to a new file, which will take the new columns with it. You can then modify the schema of the newly created file.
This is more what I needed: http://hub.qgis.org/wiki/17/Deleting_a_column_from_an_attribute_table
This plugin makes it possible to graphically add and remove columns from layer attribute tables.
I now realise I should have specified in my question that I was not working with data in a PostGIS or other database, but being a newbie this didn't occur to me.