SELECT 
  q_images.*, 
  q_images_links.*, 
  q_common_descriptions.description AS alt, 
  q_images.image_id AS images_image_id 
FROM 
  q_images_links 
  LEFT JOIN q_images ON q_images_links.detailed_id = q_images.image_id 
  LEFT JOIN q_common_descriptions ON q_common_descriptions.object_id = q_images.image_id 
  AND q_common_descriptions.object_holder = 'images' 
  AND q_common_descriptions.lang_code = 'en' 
WHERE 
  q_images_links.object_type = 'product' 
  AND q_images_links.type = 'M' 
  AND q_images_links.object_id IN (
    '31009', '31010', '31011', '31012', 
    '31013', '31014', '31015', '31016', 
    '31017', '31018', '31019', '31020', 
    '31021', '31022', '31023', '31024'
  ) 
ORDER BY 
  q_images_links.position, 
  q_images_links.pair_id

Query time 0.00117

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "140.81"
    },
    "ordering_operation": {
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "26.00"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "q_images_links",
            "access_type": "range",
            "possible_keys": [
              "object_id"
            ],
            "key": "object_id",
            "used_key_parts": [
              "object_id",
              "object_type",
              "type"
            ],
            "key_length": "81",
            "rows_examined_per_scan": 26,
            "rows_produced_per_join": 26,
            "filtered": "100.00",
            "index_condition": "((`portal`.`q_images_links`.`object_type` = 'product') and (`portal`.`q_images_links`.`type` = 'M') and (`portal`.`q_images_links`.`object_id` in ('31009','31010','31011','31012','31013','31014','31015','31016','31017','31018','31019','31020','31021','31022','31023','31024')))",
            "cost_info": {
              "read_cost": "47.21",
              "eval_cost": "5.20",
              "prefix_cost": "52.41",
              "data_read_per_join": "2K"
            },
            "used_columns": [
              "pair_id",
              "object_id",
              "object_type",
              "image_id",
              "detailed_id",
              "type",
              "position"
            ]
          }
        },
        {
          "table": {
            "table_name": "q_images",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "image_id"
            ],
            "key_length": "4",
            "ref": [
              "portal.q_images_links.detailed_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 26,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "26.00",
              "eval_cost": "5.20",
              "prefix_cost": "83.61",
              "data_read_per_join": "19K"
            },
            "used_columns": [
              "image_id",
              "image_path",
              "image_x",
              "image_y",
              "is_high_res"
            ],
            "attached_condition": "<if>(is_not_null_compl(q_images), (`portal`.`q_images_links`.`detailed_id` = `portal`.`q_images`.`image_id`), true)"
          }
        },
        {
          "table": {
            "table_name": "q_common_descriptions",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "object_id",
              "lang_code",
              "object_holder"
            ],
            "key_length": "107",
            "ref": [
              "portal.q_images.image_id",
              "const",
              "const"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 26,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "26.00",
              "eval_cost": "5.20",
              "prefix_cost": "114.81",
              "data_read_per_join": "15K"
            },
            "used_columns": [
              "object_id",
              "description",
              "lang_code",
              "object_holder"
            ],
            "attached_condition": "<if>(is_not_null_compl(q_common_descriptions), (`portal`.`q_common_descriptions`.`object_id` = `portal`.`q_images`.`image_id`), true)"
          }
        }
      ]
    }
  }
}

Result

image_id image_path image_x image_y is_high_res pair_id object_id object_type detailed_id type position alt images_image_id
0 71xdRDliLcL._AC_UL436_.jpg 405 436 N 49327 31024 product 51288 M 0 51288
0 71k-FjGpo2L._AC_UL436_.jpg 436 436 N 49329 31022 product 51290 M 0 51290
0 713NoLTS3BL._SL1000_.jpg 1000 1000 N 49330 31023 product 51291 M 0 51291
0 71x4tN6CItL._AC_UL436_.jpg 431 436 N 49331 31020 product 51292 M 0 51292
0 51Mkue4wmZL._AC_UL436_.jpg 145 436 N 49333 31019 product 51294 M 0 51294
0 61jjnSO1QmL._AC_UL436_.jpg 436 427 N 49338 31017 product 51299 M 0 51299
0 71FhTxLvmbL._AC_UL436_.jpg 436 436 N 49340 31016 product 51301 M 0 51301
0 61NPag4UMdL._AC_UL436_.jpg 436 436 N 49341 31015 product 51302 M 0 51302
0 81trc9m_iDL._AC_UL436_.jpg 261 436 N 49342 31014 product 51303 M 0 51303
0 418jIPsYytL._AC_UL436_.jpg 436 302 N 49345 31011 product 51306 M 0 51306
0 download__1__nwdj-5o.jpg 300 300 N 49346 31010 product 51307 M 0 51307
0 download__2__d4li-jg.jpg 300 300 N 49351 31009 product 51312 M 0 51312
0 61uVt7BQBmL._SL1024_.jpg 1024 1024 N 65530 31012 product 67481 M 0 67481
0 2_gc8c-0o.jpg 640 626 N 81813 31013 product 83756 M 0 83756
0 2_7be8-r8.jpg 640 626 N 82891 31018 product 84834 M 0 84834