I have the classic situation with ownership parcels where a single polygon has numerous owners. I have related the parcel shapefile with an owner table in my database but for the life of me I can't figure out how to build a label template that displays the fields from the related records (as i would have done with a join).

Ideally the label would display the parcel data stacked on the ownership info. The only solution I can think of at the moment is to insert a .pdf with the multiple owners related to the parcel ID but that isn't very elegant.

Any idea how do to this (ArcMap Desktop 10x).


4 Answers 4


Assuming you've got your two tables (feature class and related table) this blog seems to come up with a reasonable solution: Displaying a multi-row table label in ArcGIS using Python.

I'm still trying to figure out a way to display table lines in the label... ultimately I'd love to feed html into the label expression... alas, so far I don't seem to be able to find a solution.

  • Thanks a bunch for that link! This really helped me in a project I'm currently working on where I have to label a bunch of points with contamination results that are in another table. What is key here is the fact that the table and feature class do not have to be related and the table can have multiple records that reference a single point. Now I just have to figure out how to set this up with feature linked annotation...
    – Sethdd
    Commented Nov 20, 2014 at 22:38
  • This blog is no longer available - any idea if the content is available elsewhere?
    – Michael
    Commented Dec 1, 2017 at 20:27

You can try first to execute SQL query with GROUP BY and string aggregation function to produce owners table for labeling purposes.

Where do you have your data stored?

You can use this example in case of Oracle. And this one if you are using MS SQL.

Any way I think you have to preprocess your owners table in some way to make it possible to perform join "m-1" in ArcGIS for labeling.

Another way is to develop a script / ArcObjects code which will create annotation featureclass from parcel features + owners table.

  • I'm using MySQL but aggregation looks like the way to go. I don't know the maximum number of multiple owners but if I can build a table that i can join with I think there is a function I can apply in my label script that skips the printing of null fields? Thanks for the clue.
    – Ventifacts
    Commented Feb 29, 2012 at 23:31

If you have the ArcINFO license level, then give Pivot Tables a try.

That table (executed on your owners table) can then be joined back to your parcels and a label expression used, for example:

[OWNER1] & " - " & [OWNER2] & etc...

I believe you can also create the pivot table in excel and export to DBF4 (if using newer excel, open spreadsheet in Access and export to dbf from there, or just some other supported table format directly from excel, maybe even excel spreadsheet would work for the join)

  • Unfortunately I only have arcmap desktop so will have to take a look at solution b.
    – Ventifacts
    Commented Feb 29, 2012 at 23:24
  • 2
    ArcInfo is a license level, while ARC/INFO is the old command line interface. What license level is your ArcGIS Desktop installation authorized for?
    – blah238
    Commented Mar 1, 2012 at 4:46

I'm not sure if this creates more problems than it solves but you could add labels in multiple times by loading the same layer several times. So the first label would include the parcel information, the second label would be owner #1 (position so it does not conflict with parcel info), the third label would be owner #2 offset by 2x etc. This is not a good approach, but perhaps a possible way of doing it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.