I follow your guidline, I don’t include the below filter in my query, then my API response gives 2 results, one for the original Ad and another for the AD_VARIATIONS as modified Ad.
SELECT
ad_group_ad.action_items,
ad_group_ad.ad.added_by_google_ads,
ad_group_ad.ad.app_ad.descriptions,
ad_group_ad.ad.app_ad.headlines,
ad_group_ad.ad.app_ad.html5_media_bundles,
ad_group_ad.ad.app_ad.images,
ad_group_ad.ad.app_ad.mandatory_ad_text,
ad_group_ad.ad.app_ad.youtube_videos,
ad_group_ad.ad.app_engagement_ad.descriptions,
ad_group_ad.ad.app_engagement_ad.headlines,
ad_group_ad.ad.app_engagement_ad.images,
ad_group_ad.ad.app_engagement_ad.videos,
ad_group_ad.ad.app_pre_registration_ad.descriptions,
ad_group_ad.ad.app_pre_registration_ad.headlines,
ad_group_ad.ad.app_pre_registration_ad.images,
ad_group_ad.ad.app_pre_registration_ad.youtube_videos,
ad_group_ad.ad.call_ad.business_name,
ad_group_ad.ad.call_ad.call_tracked,
ad_group_ad.ad.call_ad.conversion_action,
ad_group_ad.ad.call_ad.conversion_reporting_state,
ad_group_ad.ad.call_ad.country_code,
ad_group_ad.ad.call_ad.description1,
ad_group_ad.ad.call_ad.description2,
ad_group_ad.ad.call_ad.disable_call_conversion,
ad_group_ad.ad.call_ad.headline1,
ad_group_ad.ad.call_ad.headline2,
ad_group_ad.ad.call_ad.path1,
ad_group_ad.ad.call_ad.path2,
ad_group_ad.ad.call_ad.phone_number,
ad_group_ad.ad.call_ad.phone_number_verification_url,
ad_group_ad.ad.device_preference,
ad_group_ad.ad.discovery_carousel_ad.business_name,
ad_group_ad.ad.discovery_carousel_ad.call_to_action_text,
ad_group_ad.ad.discovery_carousel_ad.carousel_cards,
ad_group_ad.ad.discovery_carousel_ad.description,
ad_group_ad.ad.discovery_carousel_ad.headline,
ad_group_ad.ad.discovery_carousel_ad.logo_image,
ad_group_ad.ad.discovery_multi_asset_ad.business_name,
ad_group_ad.ad.discovery_multi_asset_ad.call_to_action_text,
ad_group_ad.ad.discovery_multi_asset_ad.descriptions,
ad_group_ad.ad.discovery_multi_asset_ad.headlines,
ad_group_ad.ad.discovery_multi_asset_ad.lead_form_only,
ad_group_ad.ad.discovery_multi_asset_ad.logo_images,
ad_group_ad.ad.discovery_multi_asset_ad.marketing_images,
ad_group_ad.ad.discovery_multi_asset_ad.portrait_marketing_images,
ad_group_ad.ad.discovery_multi_asset_ad.square_marketing_images,
ad_group_ad.ad.display_upload_ad.display_upload_product_type,
ad_group_ad.ad.display_upload_ad.media_bundle,
ad_group_ad.ad.display_url,
ad_group_ad.ad.expanded_dynamic_search_ad.description,
ad_group_ad.ad.expanded_dynamic_search_ad.description2,
ad_group_ad.ad.expanded_text_ad.description,
ad_group_ad.ad.expanded_text_ad.description2,
ad_group_ad.ad.expanded_text_ad.headline_part1,
ad_group_ad.ad.expanded_text_ad.headline_part2,
ad_group_ad.ad.expanded_text_ad.headline_part3,
ad_group_ad.ad.expanded_text_ad.path1,
ad_group_ad.ad.expanded_text_ad.path2,
ad_group_ad.ad.final_app_urls,
ad_group_ad.ad.final_mobile_urls,
ad_group_ad.ad.final_url_suffix,
ad_group_ad.ad.final_urls,
ad_group_ad.ad.gmail_ad.header_image,
ad_group_ad.ad.gmail_ad.marketing_image,
ad_group_ad.ad.gmail_ad.marketing_image_description,
ad_group_ad.ad.gmail_ad.marketing_image_display_call_to_action.text,
ad_group_ad.ad.gmail_ad.marketing_image_display_call_to_action.text_color,
ad_group_ad.ad.gmail_ad.marketing_image_display_call_to_action.url_collection_id,
ad_group_ad.ad.gmail_ad.marketing_image_headline,
ad_group_ad.ad.gmail_ad.product_images,
ad_group_ad.ad.gmail_ad.product_videos,
ad_group_ad.ad.gmail_ad.teaser.business_name,
ad_group_ad.ad.gmail_ad.teaser.description,
ad_group_ad.ad.gmail_ad.teaser.headline,
ad_group_ad.ad.gmail_ad.teaser.logo_image,
ad_group_ad.ad.hotel_ad,
ad_group_ad.ad.id,
ad_group_ad.ad.image_ad.image_url,
ad_group_ad.ad.image_ad.mime_type,
ad_group_ad.ad.image_ad.name,
ad_group_ad.ad.image_ad.pixel_height,
ad_group_ad.ad.image_ad.pixel_width,
ad_group_ad.ad.image_ad.preview_image_url,
ad_group_ad.ad.image_ad.preview_pixel_height,
ad_group_ad.ad.image_ad.preview_pixel_width,
ad_group_ad.ad.legacy_app_install_ad,
ad_group_ad.ad.legacy_responsive_display_ad.accent_color,
ad_group_ad.ad.legacy_responsive_display_ad.allow_flexible_color,
ad_group_ad.ad.legacy_responsive_display_ad.business_name,
ad_group_ad.ad.legacy_responsive_display_ad.call_to_action_text,
ad_group_ad.ad.legacy_responsive_display_ad.description,
ad_group_ad.ad.legacy_responsive_display_ad.format_setting,
ad_group_ad.ad.legacy_responsive_display_ad.logo_image,
ad_group_ad.ad.legacy_responsive_display_ad.long_headline,
ad_group_ad.ad.legacy_responsive_display_ad.main_color,
ad_group_ad.ad.legacy_responsive_display_ad.marketing_image,
ad_group_ad.ad.legacy_responsive_display_ad.price_prefix,
ad_group_ad.ad.legacy_responsive_display_ad.promo_text,
ad_group_ad.ad.legacy_responsive_display_ad.short_headline,
ad_group_ad.ad.legacy_responsive_display_ad.square_logo_image,
ad_group_ad.ad.legacy_responsive_display_ad.square_marketing_image,
ad_group_ad.ad.local_ad.call_to_actions,
ad_group_ad.ad.local_ad.descriptions,
ad_group_ad.ad.local_ad.headlines,
ad_group_ad.ad.local_ad.logo_images,
ad_group_ad.ad.local_ad.marketing_images,
ad_group_ad.ad.local_ad.path1,
ad_group_ad.ad.local_ad.path2,
ad_group_ad.ad.local_ad.videos,
ad_group_ad.ad.name,
ad_group_ad.ad.resource_name,
but with output ads data above (Section 2.1 & section 2.2), I can't find out this relationship.