Custom MySQL query to pull out Advanced Custom Fields?

The code is fine, I can’t see any need to modify the query – I think you’re missing the third argument in your get_post_meta call:

$postACF_sc =  get_post_meta($postId, 'sc_link', true /* $single */);

You might also want to add this snippet just before the foreach to save multiple database queries:

update_postmeta_cache( wp_list_pluck( $posts, 'posts_id' ) );