You started by adding a table without geometries. Never mind. Keep it that way.
IMPORTANT : make sure every line in your non-geometry table has a unique ID.
- Create entities you need in one or multiple geometric layer where you will make sure there is an ID field or even import them from elsewhere (exemple a point ID/X/Y table).
- Make sure the unique ID of the non geometric table row is assigned to the geometry layer in the ID field.
- Go in the properties of your geometric layer, then "JOINS" tab
- Clic on the "+" sign in the bottom to add a joined table
- Choose your non geometric table as the join layer
- Choose the JOIN FIELD : it must be the unique ID field in your non geometric table. Remeber : this field is supposed to have non-duplicated values.
- Choose the TARGET FIELD : it must be the ID (unique or not) of your geometric table. It must be the same as the row your trying to import. Note you can have multiple geometries with the same ID if needed, the attributes will then be duplicated across the multiple geometries.
- Choose if needed the fields you want to import by ticking their names
- If you need to customize a prefix on the imported fields, you can enter a value or leave the default. You can tick the custom field box and delete everything written, so you will have the original fields, but make sure a similar named field doesn't exist in your geometric table.
Example : prefix "CSV_" will transform a field named "MYFIELD" in "CSV_MYFIELD"
- You can do the same join action with as many geometry layers you need, based on your non-geometric table.
- If you want to save this in the geometric layer, you need to "save the layer as" (export the geometric layer) once you finished joining.
As you can see, your joined layer can be a shapefile with no geometry or aswell Excel or CSV based, for example. Helpful to make external changes without a GIS software.
TIP if the join operation doesn't work : You might have problems joining features if the ID fields are not of the same type (ex : String and Integer). In this case, just create a new field with the right type.
Please comment if it's unclear.