Я знаю, что нужно отвечать только на вопрос. Но в этом случае, кажется, лучше сначала оптимизировать структуру данных, чтобы вообще избежать JOIN.
Структура данных кажется неоптимальной, мягко говоря. Это впоследствии приводит к сложным стратегиям JOIN и множеству других проблем.
Пожалуйста, объясните, что три таблицы order_stage_ * - содержат и должны делать для вас.
Я предполагаю, что вы хотите сохранить те заказы в тех трех таблицах, которые имеют специфику c stage. Но это необходимо сделать с помощью всего лишь одного дополнительного атрибута в таблице заказов, в случае, если эти этапы не связаны (= всегда разные, невозможно, чтобы один заказ состоял из нескольких этапов).