I have a map with four layers. Two of these layers cover an entire state, and the other two focus on the area I'm actually interested in within the state.

I'm trying to Select by Attribute with one of the larger focused layers.

Is there a way I can Select by Attribute but only within the bounds of the smaller layers? I think there is a way, possibly using Select by Location, but I can't seem to figure out what it is.

Hoping there's a way to do this within the GUI of ArcMap rather than any Python scripting, though I'm pretty sure using a Python script would make this so much easier.

2 Answers 2


Yes, if you just want to do it with selections you need to run multiple selections and change the method/initial set.

First Select by Location using within your smallest boundary. Or if you've got two that overlap somewhat, you select everything within one then run another selection using the method 'select from currently selected features in', as discussed at Finding given objects under both a polygon and a buffer. The help files for Select by Location give an overview (with image) of various methods.

Once you've narrowed down your selection set based on locations, you can switch to Select by Attribute and use the same process - change the method to selecting only from the currently selected set with the attribute criteria you desire. The help files for Select by Attribute show similar examples of available methods.

Both tools allow you to:

  • create a whole new selection
  • add to a selection
  • remove from a selection
  • select from the current selection

So long as you don't deselect anything along the way, you can build very complicated selection sets depending on how many steps you take; similar to complex SQL queries but running each part individually.

  • I use Select by Location, using the points of interest as the source layers and the larger regional areas as my target layer. The relevant regional areas get selected. I use Select by Location again, with the select from current method. I'm trying to get all the smaller areas within the larger regional areas (but they don't necessarily contain the points of interest) selected. I use the Larger regional areas as my source layer (the relevant ones are currently selected) and the smaller ones as my target. I change it to "are within source layer". No change in selection. What am I doing wrong? Oct 19, 2014 at 21:25
  • @user3738728 I'm not clear what the layers and their geometries are or what you're trying to select using what. A screenshot or better description of your four layers could help. If you have selected large and set the method to 'from current', it wouldn't change/pick small because there are no small selected. I think you'll get what you want just by changing the method to 'new' instead of 'from current' in your last selection. With the relevant large already selected, those should be the only ones considered with that layer as source in a new selection. Or this may require an Overlay tool.
    – Chris W
    Oct 20, 2014 at 18:49

You mention Python scripting, which would be a good way to approach this.

However, if you're not already familiar with Python you could look at Model Builder, as this will give an easier GUI to get you started.

Here is a quick example of a model which uses Select By Attributes to narrow down a layer, then uses the output of this to Select By Location:

enter image description here

Hopefully the flow from left-to-right makes sense, and automates the process that Chris has outlined in his answer.

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.