Custom Query for searching through custom fields

I think you need a join.

$myquery = $wpdb->get_col(
    $wpdb->prepare(
        "SELECT DISTINCT meta_value FROM $wpdb->postmeta
         INNER JOIN $wpdb->posts ON $wpdb->postmeta.post_id = $wpdb->posts.ID
         WHERE
             meta_key = %s AND
             post_status IN ('publish')",
        $metakey
    )
);