вы могли бы сделать
SELECT *
from members
UNION
SELECT inventory.*, 'dummy1' AS membersCol1, 'dummy2' AS membersCol2
from inventory;
Где membersCol1
, membersCol12
и т.д ... имена столбцов из members
, которые не в inventory
. Таким образом, оба запроса в объединении будут иметь одинаковые столбцы (Предполагая, что все столбцы в inventory
такие же, как в members
, что кажется мне очень странным ... но эй, это ваша схема).
UPDATE:
Как HLGEM отметил, это будет только работа, если inventory
есть столбцы с одинаковыми именами, как members
, и в том же порядке. Именование всех столбцов явным образом - лучшая идея, но поскольку я не знаю имен, я не могу это точно сделать. Если бы я сделал, это может выглядеть примерно так:
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;
Я не люблю использовать NULL для фиктивных значений, потому что тогда это не всегда ясно, какая часть союза запись пришла из - с помощью «пустышку» делает ясно, что запись принадлежит той части союза, которая не имела этой записи (хотя иногда это может и не иметь значения). Сама идея объединения этих двух таблиц мне кажется очень странной, потому что я очень сомневаюсь, что у них будет более 1 или 2 столбца с одинаковым именем, но вы задали вопрос таким образом, чтобы я представлял в своем сценарии это как-то имеет смысл.
Почему вы хотите объединить две таблицы совершенно разных контекстов? – Joe
Вы никогда не будете использовать select * в любом запросе, который будет запущен при производстве. Вы всегда должны указывать только те столбцы, которые вам нужны как для удобства, так и для производительности. – HLGEM