Объедините две таблицы в SQLite

У меня есть две таблицы, 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

Существует ли легкий метод вместо того, чтобы вставить каждую запись? Они - один миллион записей таблиц, таким образом, мне нужен эффективный путь.

5
задан Brian Tompsett - 汤莱恩 13 February 2017 в 16:46
поделиться

3 ответа

Сделайте из двух таблиц VIEW. Напишите SELECT ... JOIN утверждение, которое даст вам нужный результат, а затем используйте его в качестве основы для VIEW.

Пример:

CREATE VIEW
  database.viewname
AS
  SELECT
    ta.key, 
    ta.col1,
    tb.col2
  FROM
    ta
   LEFT JOIN
    tb
   USING(key)
5
ответ дан 14 December 2019 в 13:37
поделиться

Использование 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)

Это заполнит новую таблицу данными из старых таблиц, но они смогут варьироваться независимо.

.
1
ответ дан 14 December 2019 в 13:37
поделиться

Для того, что вы ищете, вам нужно будет сделать ПОЛНОЕ ВНИМАНИЕ, чтобы убедиться, что вы не пропустили ни одного ключа. После того, как запрос заработает, вы можете подумать о том, чтобы просто использовать его или создать представление.

Если FULL OUTER JOIN не реализован, вам может понадобиться работать с ограничениями БД, но вы можете использовать только UNION для создания полного внешнего соединения влево и вправо.

.
0
ответ дан 14 December 2019 в 13:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: