Strange, maybe that's happened because your select more simple that my view?
My full view looks like this:
CREATE OR REPLACE VIEW third_view AS
SELECT
o.PK AS order_pk,
MAX(IF(omc.ostatus = 'SHIPPED', omc.p_timestamp, null)) AS shipped_date,
MAX(IF(omc.ostatus = 'REALIZATION', omc.p_timestamp, null)) AS realization_date,
MAX(IF(omc.ostatus = 'RETURN', omc.p_timestamp, null)) AS return_date,
MAX(IF(omc.ostatus = 'RETURN_AND_REALIZATION', omc.p_timestamp, null)) AS return_and_realization_date,
MAX(IF(omc.ostatus = 'APPROVED', omc.p_timestamp, null)) AS approved_date,
MAX(IF(omc.ostatus = 'READY_TO_PACKING', omc.p_timestamp, null)) AS ready_to_packing_date,
MAX(IF(omc.ostatus = 'PACKED', omc.p_timestamp, null)) AS packed_date,
MAX(IF(omc.ostatus = 'READY_FOR_ISSUANCE', omc.p_timestamp, null)) AS ready_for_issurance_date,
MAX(IF(omc.ostatus = 'IN_STORE_PARTIALLY_COMPLETED', omc.p_timestamp, null)) AS in_store_partially_completed_date,
MAX(IF(omc.ostatus = 'DELIVERED', omc.p_timestamp, null)) AS delivered_date,
MAX(IF(omc.ostatus = 'CANCELLED', omc.p_timestamp, null)) AS cancelled_date,
MAX(IF(omc.ostatus = 'RETURNED_FOR_REVISION', omc.p_timestamp, null)) AS returned_for_revision_date,
MAX(IF(omc.ostatus = 'MOVED_TO_RETAIL', omc.p_timestamp, null)) AS moved_to_retail_date,
MAX(IF(omc.ostatus = 'PROCESSED', omc.p_timestamp, null)) AS processed_date,
MAX(IF(omc.ostatus = 'WAITING', omc.p_timestamp, null)) AS waiting_date,
MAX(IF(omc.ostatus = 'UNCALL', omc.p_timestamp, null)) AS uncall_date,
MAX(IF(omc.ostatus = 'PARTIALLY_READY_FOR_ISSUANCE', omc.p_timestamp, null)) AS partially_ready_for_issuance_date,
MAX(IF(omc.ostatus = 'PARTIAL_REALIZATION', omc.p_timestamp, null)) AS partial_realization_date,
MAX(IF(omc.ostatus = 'REALIZATION_AND_RETURN', omc.p_timestamp, null)) AS realization_and_return_date
FROM main_view AS o
JOIN ordermodifirecords AS omr
ON o.PK = omr.p_order
JOIN ordermodifirecentrs AS omc
ON omc.p_modificationrecord = omr.PK
WHERE omc.p_status IS NOT NULL
GROUP BY o.PK
ORDER BY NULL;
If i test your example, disable optimization option works good.
Strange, maybe that's happened because your select more simple that my view?
My full view looks like this:
CREATE OR REPLACE VIEW third_view AS
SELECT
o.PK AS order_pk,
MAX(IF(omc.ostatus = 'SHIPPED', omc.p_timestamp, null)) AS shipped_date,
MAX(IF(omc.ostatus = 'REALIZATION', omc.p_timestamp, null)) AS realization_date,
MAX(IF(omc.ostatus = 'RETURN', omc.p_timestamp, null)) AS return_date,
MAX(IF(omc.ostatus = 'RETURN_AND_REALIZATION', omc.p_timestamp, null)) AS return_and_realization_date,
MAX(IF(omc.ostatus = 'APPROVED', omc.p_timestamp, null)) AS approved_date,
MAX(IF(omc.ostatus = 'READY_TO_PACKING', omc.p_timestamp, null)) AS ready_to_packing_date,
MAX(IF(omc.ostatus = 'PACKED', omc.p_timestamp, null)) AS packed_date,
MAX(IF(omc.ostatus = 'READY_FOR_ISSUANCE', omc.p_timestamp, null)) AS ready_for_issurance_date,
MAX(IF(omc.ostatus = 'IN_STORE_PARTIALLY_COMPLETED', omc.p_timestamp, null)) AS in_store_partially_completed_date,
MAX(IF(omc.ostatus = 'DELIVERED', omc.p_timestamp, null)) AS delivered_date,
MAX(IF(omc.ostatus = 'CANCELLED', omc.p_timestamp, null)) AS cancelled_date,
MAX(IF(omc.ostatus = 'RETURNED_FOR_REVISION', omc.p_timestamp, null)) AS returned_for_revision_date,
MAX(IF(omc.ostatus = 'MOVED_TO_RETAIL', omc.p_timestamp, null)) AS moved_to_retail_date,
MAX(IF(omc.ostatus = 'PROCESSED', omc.p_timestamp, null)) AS processed_date,
MAX(IF(omc.ostatus = 'WAITING', omc.p_timestamp, null)) AS waiting_date,
MAX(IF(omc.ostatus = 'UNCALL', omc.p_timestamp, null)) AS uncall_date,
MAX(IF(omc.ostatus = 'PARTIALLY_READY_FOR_ISSUANCE', omc.p_timestamp, null)) AS partially_ready_for_issuance_date,
MAX(IF(omc.ostatus = 'PARTIAL_REALIZATION', omc.p_timestamp, null)) AS partial_realization_date,
MAX(IF(omc.ostatus = 'REALIZATION_AND_RETURN', omc.p_timestamp, null)) AS realization_and_return_date
FROM main_view AS o
JOIN ordermodifirecords AS omr
ON o.PK = omr.p_order
JOIN ordermodifirecentrs AS omc
ON omc.p_modificationrecord = omr.PK
WHERE omc.p_status IS NOT NULL
GROUP BY o.PK
ORDER BY NULL;
If i test your example, disable optimization option works good.