Не вижу разницы. Стандартная ситуация, есть таблица Вы в ней ищите совпадения. В чем конкретно проблема?
Попробовал сделать так, но пока что идей мало:(
Сделали и что? Работает не так как хотелось, ошибки есть? Какие?
Зачем join вообще? У Вас есть таблица в ней лежат вопросы и ответы всех групп, сколько бы их ни было. Поиск при этом одной строкой делается:
$q = 'some query string';
$data = MyModelForQuestion::find()
->orWhere(['like','question',$q])
->orWhere(['like','answer',$q])
->index('group_id')
->all();
Это конечно примитивное решение, поиск должен учитывать опечатки и разбивать строки на слова, и часто такой точности не требуется. Так что это пример.
и кстати Ваш код:
->andWhere([ 'or', ['like','searchAnswer.question',$searchQuestion],]);
должен давать ошибку, пропущен третий параметр