SELECT tripad_order, tourad_order
FROM (
SELECT tripad_order, tourad_order
FROM tripdetails
LEFT JOIN tripaddresses ON tripaddresses.trip_id = tripdetails.trip_id
LEFT JOIN touraddresses ON touraddresses.tripad_id =
tripaddresses.tripad_id AND touraddresses.tour_id = tripdetails.tour_id
WHERE tripde_id = 39780
UNION ALL
SELECT tripad_order, tourad_order
FROM tripdetails
LEFT JOIN touraddresses ON touraddresses.tour_id = tripdetails.tour_id
LEFT JOIN tripaddresses ON tripaddresses.tripad_id =
touraddresses.tripad_id AND tripaddresses.trip_id IN (0,
tripdetails.trip_id)
WHERE tripde_id = 39780 AND tripad_type IS NOT NULL
) t
GROUP BY tripad_order, tourad_order
ORDER BY
CASE WHEN tripad_order = 0 THEN NULL ELSE tripad_order END,
CASE WHEN tourad_order IS NULL THEN 1 ELSE 0 END,
tourad_order;
https://admirable-smakager-729141.netlify.app/post/6