que podría hacer
SELECT *
from members
UNION
SELECT inventory.*, 'dummy1' AS membersCol1, 'dummy2' AS membersCol2
from inventory;
Dónde membersCol1
, membersCol12
, etc ... son los nombres de las columnas de members
que no están en inventory
. De esta forma, ambas consultas en la unión tendrán las mismas columnas (suponiendo que todas las columnas en inventory
son las mismas que en members
, lo cual me parece muy extraño ... pero bueno, es su esquema).
ACTUALIZACIÓN:
Como HLGEM señaló, esto será solamente trabajo si inventory
tiene columnas con los mismos nombres que members
, y en el mismo orden. Nombrar todas las columnas explícitamente es la mejor idea, pero como no sé los nombres, no puedo hacer eso exactamente. Si lo hiciera, podría ser algo como esto:
SELECT id, name, member_role, member_type
from members
UNION
SELECT id, name, '(dummy for union)' AS member_role, '(dummy for union)' AS member_type
from inventory;
no me gusta usar NULL para valores ficticios, porque entonces no siempre está claro qué parte de la Unión un registro vino de - el uso de 'maniquí' hace claro que el registro es de la parte de la unión que no tenía ese registro (aunque a veces esto podría no importar). La sola idea de unir estas dos tablas me parece muy extraña porque dudo mucho que tengan más de 1 o 2 columnas con el mismo nombre, pero usted hizo la pregunta de tal manera que imagino que en su escenario esto de alguna manera tiene sentido.
¿Por qué querría unir dos tablas de contextos completamente diferentes? – Joe
Nunca use select * en ninguna consulta que se ejecute en producción. Siempre debe especificar solo las columnas que necesita tanto para la mantenibilidad como para el rendimiento. – HLGEM