1 зачем это делать 1 связью, сделайте 2, а в запросе используйте Texture::find()->with(['layers,objects'])->all();
что бы минимизировать запросы к бд
Но возможно Вы не правильно вопрос сформулировали и Вам нужно join делать? Тогда будет приблизительно так: