На мой взгляд получается противоречие в требованиях: с одной стороны разделение данных, а с другой стороны — выборка из одного места.
Возможные варианты:
* partitioning + репликация
* дополнительные индексы включающие в себя id кампании
* экзотические решения
sqlrelay.sourceforge.net/sqlrelay/router.html (не проверял)