Feature request #4924

Join attributes - add the option of creating a shapefile with matching attributes only

Added by Filipe Dias about 5 years ago. Updated 11 months ago.

Status:Feedback Start Date:01/31/2012
Priority:Normal Due date:
Assigned to:Marco Hugentobler % Done:


Target version:Future Release - Nice to have
Platform: Resolution:
Platform version: Pull Request or Patch supplied:No
Status info: Tag:


Currently the output of the join function keeps all records/features of both shapefiles/tables. It would be useful to add the option of keeping only matching records/features during the table join.

This exists in ArcGIS and is explained in this link, under "Joining attributes in one table to another".


Apparently the join function of mmqgis only keeps matching records.


Updated by Nathan Woodrow about 5 years ago

I think it would be a good idea to create a memory layer rather then a shapefile, then it can be saved out to disk later.

Updated by Giovanni Manghi about 5 years ago

  • Target version set to Version 2.0.0

Updated by Pirmin Kalberer over 4 years ago

  • Target version changed from Version 2.0.0 to Future Release - Nice to have

Updated by Antonio Locandro almost 3 years ago

This is very important feature for some of us that do this often. I believe when doing a join there should be an option to keep matching records or all as follows:

  • Add vector join ***

Join layer -
Join Field -
Target Field -

[x] Keep only matching records (by default)
[ ] Keep all records

[ ] Cache join layer in virtual memory
[ ] Create attribute index on join field

I don't know how other COTS do it but when doing joins I see the fields in the layer where the join is created and I am able to select and do queries on it.

As an extra bonus the possibility to have a check-box to the join to enable/disable it at will

Join layer / Join Field / Target field / Memory Cache / Enable Join

Also currently it only lets you do joins from tables previously loaded to QGIS but in our case we have lots of CSV files we use for joins where we usually just load them at the Join layer stage

Updated by Antonio Locandro almost 3 years ago

Ok so spent 2 hours working around to realize that this is the default behaviour, I should have looked at the issue list first. Joining tables is a very common task and the current state of QGIS makes it very hard to do since one would have to several things before having the result one expects.

BTW I wouldn't want to create a layer each time I do a join which is what mmqgis does at the moment

Updated by Nyall Dawson 11 months ago

  • Status changed from Open to Feedback

I don't understand this bug. Are you referring the joining layers using the option under layer properties? Because if so that will only use matching features. Can anyone please clarify?

Also available in: Atom