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.

8 Comments so far

  1. GeoMullah on April 12, 2007

    I was having this problem the other day. I just quit and went home before I trashed my workstation.

  2. dylan on April 12, 2007

    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.

  3. BM on April 12, 2007

    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.

  4. thesteve0 on April 12, 2007

    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.

  5. Dave Smith on April 14, 2007

    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.

  6. Matthew Snape on April 20, 2007

    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.

  7. Steve Lewis on November 2, 2007

    Use the Make Query Table Tool in ArcToolbox. That will solve it.

  8. kl on December 10, 2007

    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.

Leave a reply