Объединение его в одну большую таблицу - это всегда вариант, но в большинстве случаев это приводит к излишне большим и избыточным таблицам, что делает ваше приложение медленным и трудным в обслуживании.
Вы также можете эмулировать объединение, просматривая результаты запроса и выполняя второй запрос для каждого результата, найденного для первого запроса. Если у вас есть SQL-запрос
SELECT a.x FROM b INNER JOIN a ON a.y=b.y;
Вы можете подражать этому примерно так:
for b in db.GqlQuery("SELECT * FROM b"):
for a in db.GqlQuery("SELECT * FROM a WHERE y=:1", b.y):
print a.x