According to the Taxonomy page, the , argument between two taxonomy terms functions as AND while the + argument functions as OR.
However, the taxonomy_term view that comes packages while Views treats them both as OR. The query generated for 10+17 and 10,17 is:
SELECT node.nid AS nid,
node.sticky AS node_sticky,
node.created AS node_created
FROM node node
WHERE (node.status <> 0 OR node.uid = ***CURRENT_USER*** or ***ADMINISTER_NODES*** = 1) AND (node.vid IN (
SELECT tn.vid FROM term_node tn
WHERE tn.tid IN (10, 17)
))
ORDER BY node_sticky DESC, node_created DESCMy initial suspicion is that replacing
WHERE ..... AND (node.vid IN (
SELECT tn.vid FROM term_node tn
WHERE tn.tid IN (10, 17)
)with
WHERE ..... AND (node.vid IN (
SELECT tn.vid FROM term_node tn
WHERE tn.tid = 10) AND (node.vid IN (
SELECT tn.vid FROM term_node tn
WHERE tn.tid = 17)
)would fix the problem. However, I don't know enough about the internal workings of Views to implement the switch between the two queries based on the arguments passed in by the URL.
I didn't attach an export of the view, since it's one that comes packaged by default. It's worth noting that when activated, this view overrides Drupal's default handling of the taxonomy/term/ pages, so you essentially lose the , functionality entirely.
Comments
Comment #1
merlinofchaos commentedYes, if you want + and , to work, you need to change to the argument that doesn't support depth. It says that in the argument itself, if you had just looked. The combination of supporting depth and 'AND' makes for terrible, terrible queries, and I elected not to try and write it.