I want to join the below mentioned queries into single query SELECT
      A.update_date,
      A.create_user,
      A.service_id,A.order_id,
      '10009' AS main_plan_id,
      'Prepaid Cash' AS main_plan_name,
      ' ' AS topping_plan_id,
      ' ' AS topping_plan_name,
      '0' AS Price
FROM 
      ORDER_MASTER A 
WHERE 
      A.pending_order_type = 'Sim delivery' 
AND
      A.order_status='Pending' 
AND
      DATEDIFF(NOW(),update_date) &gt; 30
GROUP BY 
      A.update_date,
      A.create_user,
      A.service_id,
      A.order_id,
      main_plan_id,
      main_plan_name,
      topping_plan_id,
      topping_plan_name;

SELECT
      A.update_date,
      A.create_user,
      A.service_id,
      A.order_id,
      ' ' AS main_plan_id,
      ' ' AS main_plan_name,
      D.topping_plan_id,
      D.topping_plan_name,
      D.charge_amount AS Price 
FROM 
      ORDER_MASTER A
LEFT JOIN
         (
           SELECT 
                 B.service_id AS service_id,
                 B.plan_id AS topping_plan_id,
                 B.plan_name AS topping_plan_name,
                 C.charge_amount charge_amount
           FROM 
                 BILLING.BS_SERVICE_SUBSCRIPTION_MASTER B,
                 BILLING.BS_SUBSCRIPTION_CHARGE_DETAILS C
           WHERE 
                 B.subscription_id = C.subscription_id
         ) D
ON 
      A.service_id = D.service_id 
WHERE 
      A.pending_order_type='Sim delivery' 
AND
      A.order_status='Pending' 
AND
      DATEDIFF(NOW(),update_date) &gt; 30 
GROUP BY
      A.update_date,
      A.create_user,
      A.service_id,
      A.order_id,
      main_plan_id,
      main_plan_name,
      D.topping_plan_id,
      D.topping_plan_name;
Is this what you need?

( SELECT ... )
UNION ALL
( SELECT ... )


The GROUP BY on the first SELECT seems to be useless; please explain why you have it.  I am less certain about the second query.

Not sargable: DATEDIFF(NOW(),update_date) &gt; 30; change to A.update_date &gt; CURDATE() - INTERVAL 20 DAY.

Recommend:

A:  INDEX(order_status, pending_order_type, update_date)
C:  INDEX(subscription_id, charge_amount)


When JOINing, please use FROM B JOIN C ON ... instead of FROM B, C WHERE ...

(If you need further discussion, pleas provide SHOW CREATE TABLE.)