>Словами: есть компании. Каждая компания имеет один адрес. Каждый адрес имеет один
>город. Город входит в регион. Регион в страну. Каждая компания может
>входить в ноль или несколько категорий.Город не обязательно входит в регион (Москва, а?), кроме городов есть посёлки, станицы (побольше иных городов), аулы и т. п., так что схема не вполне адекватна. Это к слову, потому что часто вижу подобные недоделки на разных сайтах. Очень советую пересмотреть, пока вы только в начале пути - потом менять будет сложнее.
>1. Имеются только id-шники категорий - нужно получить для них компании.
Это совсем просто, есть же таблица categories_companies, которая буквально на этот вопрос и отвечает. Кстати, а где индексы?
>2. Имеются только id-шники: или города, или региона, или страны, или всех
>вместе, или в комбинации (например, 3 страны и 5 городов) -
>нужно получить для них компании
А здесь SELECT по нескольким таблицам с соответствующими условиями, связывающими эти таблицы по внешним ключам. Чуть сложнее, чем п. 1, но тоже довольно просто, только писанины побольше.
>3.Имеются id-шники категорий и в разных вариациях стран, регионов и городов -
>нужно получить для них компании.
Аналогично, только добавляется таблица-связка categories_companies и, как следствие, ещё немного чисто технической писанины.
>К сожалению, моих познаний в sql не хватает осилить такие запросы.
Действительно, "к сожалению" - запросы-то простые. Будет лучше, если вы самостоятельно их напишете, предварительно почитав документацию и/или какие-нибудь учебники/справочники по теме, иначе дальше будет совсем туго. Как только напишите что-то конкретное, выкладывайте тут - думаю, критики найдутся :-)