Thanks for your response, Michael. I'd also found that, after looking more closely into modx's query classes, I could just pass a string into the where method. The documentation leads you to believe you have to pass a key-value in an array, but that's not the case. Here's what I ended up using:
$c->where("EXISTS (SELECT 1 FROM {$modx->getTableName('TaggerTagResource')} TaggerTagResource WHERE TaggerTagResource.tag IN (96,100,101) && TaggerTagResource.resource = modResource.id)");
Note that you cannot assign a custom alias to the table queried, as I'd originally done (ttr). It must be the one that would've been retrieved from its class (TaggerTagResource), particularly if that class is being used elsewhere in your query.
Also, this portion of the query handles cases where a subcategory of tags is chosen in addition to a main category. (A record for each should exist for both to return a result.) Tagger doesn't have a data structure that allows you to simply query "category IN(a,b,c) AND subcategory IN(d,e,f)." For this reason, it was important to use EXISTS when a subcategory was added to the query.
[ed. note: smg6511v2 last edited this post 7 years, 10 months ago.]