У меня есть две таблицы, ta и ТБ:
ta:
key col1
--------
k1 a
k2 c
ТБ:
key col2
-------
k2 cc
k3 ee
Они соединились "ключом". Я хочу знать, как может я получать таблицу, tc, как:
key col1 col2
-------------
k1 a
k2 c cc
k3 ee
Существует ли легкий метод вместо того, чтобы вставить каждую запись? Они - один миллион записей таблиц, таким образом, мне нужен эффективный путь.
Сделайте из двух таблиц VIEW. Напишите SELECT ... JOIN
утверждение, которое даст вам нужный результат, а затем используйте его в качестве основы для VIEW.
Пример:
CREATE VIEW
database.viewname
AS
SELECT
ta.key,
ta.col1,
tb.col2
FROM
ta
LEFT JOIN
tb
USING(key)
Использование VIEW - правильный путь, если вы ищете данные, отражающие изменения в исходных таблицах.
Если вы действительно хотите, чтобы данные были скопированы в новую таблицу, вам нужно сделать что-то вроде:
CREATE TABLE tc(key,col1,col2)
INSERT INTO tc (key,col1,col2)
SELECT ta.key, ta.col1, tb.col2
FROM ta FULL OUTER JOIN tb USING(key)
Это заполнит новую таблицу данными из старых таблиц, но они смогут варьироваться независимо.
.Для того, что вы ищете, вам нужно будет сделать ПОЛНОЕ ВНИМАНИЕ, чтобы убедиться, что вы не пропустили ни одного ключа. После того, как запрос заработает, вы можете подумать о том, чтобы просто использовать его или создать представление.
Если FULL OUTER JOIN не реализован, вам может понадобиться работать с ограничениями БД, но вы можете использовать только UNION для создания полного внешнего соединения влево и вправо.
.