Interno y externo lo puse para que si se necesita se pueda diferenciar qué elemento viene de dónde.
Lo que haces con la consulta es generar un recordset, que es lo mismo que viniera de una sola tabla, yo no me fijé que tus ids se llamaba distinto, puedes ocupar un
alias para este propósito, de esta manera los ids los recuperarías de la forma convencional:
Código:
SELECT * FROM(
SELECT id_PI AS id, nombre, ap, am, 'interno' as personal_tipo FROM personal_interno
UNION
SELECT id_PE AS id, nombre, ap, am, 'externo' as personal_tipo FROM personal_externo
) AS v1 ORDER BY nombre
Saludos