Quick rant on joins in ArcMap
Working with some tabular data and some point feature classes in ArcMap. I want to do a one point feature to many row join but I could also settle for a definition query where I would end up with 1 feature to 1 row
Step 1 - export the Query to a table in my personal geodb and then try to join on the appropriate fields - join works (after I follow all the rules) but it doesn’t respect the Definition query I put on the table…grrrr
Step 2 - go to the support find and that this is a known issue
Step 3 - go talk to some of the GIS analysts and they reccomend a relate rather than a join. Trouble is you can’t symbolize by a relate, it just looks like it is intended for editing.
Right now I am looking at generating 1 DBF or table per definition query I would have used above and then joining. This stinks… Does anyone have better suggestions to this issue.




I was having this problem the other day. I just quit and went home before I trashed my workstation.
Hi Steve, wish I had some answers…
Its too bad you can’t use another DB backend to store your attribute data… I suppose you could put it into SDE, but that is not an option for most people. For pure anaylsis, this is where tools like GRASS and postgis really shine: I can use whatever DB backend when working with vector data in GRASS, so my spatial anaylsis, and then switch to the DB side for a real SQL experience. In postGIS it is even simpler: geometry and attributes are all accessible from the same SQL interface. Making maps is another issue.
Seriously, the crappy attribute management support in ArcMap was one of the primary reasons I invested my time in FOSS GIS. If you can muster the time and effort, and your job permits, a real DB backend is much nicer to work with when doing complex attribute management.
While we are on the topic, what the hell is a ‘relate’ anyway? This munging of RDMBS theory/verbage is really annoying. The ‘relate’ function doesn’t really have any real use, outside of side-by-side viewing of selected features.
Isn’t relate used in one to many situations so if you select a building you can then relate to a table of renters in that building.
Geomullah:
I just made a seperate table for each month I was interested in for now and then I will grapple with it later when I move this to server. This was only for showing what the rendered maps might look like.
Dylan:
And there in lies the rub - this is about maps and data so I need the rendering. I totally agree about their screwy nomenclature. I think they had to invent it because a join does something very different from a relate.
http://webhelp.esri.com/arcgisdesktop/9.2/index.cfm?TopicName=Deciding_between_relationship_classes%2C_joins%2C_and_relates
BM:
Yup but I need to be able to do a 1 to many, like a relate, so I can then use a definition query for rendering just a one to one set. Since join only takes the first match I can’t then narrow by another value for rendering.
Ironic that such a fundamental and basic thing as attaching a table of attributes to map features involves any “known issues” and technical gyrations whatsoever.
Yes I may have a better way.
1. Open your personal geodatabase in access. Do a join using a normal access query. Include FID as a column in the query.
2. Create an odbc connection to the personal geodatabase.
3. In Catalog create a database connection to your odbc connection.
4. Open the database connnection in arcmap. You will see your newly created query (your join), open it.
5. Join the query back to your feature using FID.
This method lets you outsource your join to ms access.
Use the Make Query Table Tool in ArcToolbox. That will solve it.
Frustrating as.
I managed to get my bugged worked out through the Join tool in the Toolbox. My right click Join or Relate worked like shit.