2016-12-08 3 views
1

Я пытаюсь создать новую таблицу SQLite, объединяющую только выбранные столбцы из одной таблицы со всеми столбцами из второй таблицы. В двух таблицах используется только один столбец (первичный ключ для одной таблицы и внешний ключ для второй таблицы).SQLite: объединение выбранных столбцов из двух таблиц

create temp tablex as select column 1, column2 from table1 natural join table2;

Джойн пробегов, но результирующая таблица имеет только столбцы из таблицы 1 - ни один из столбцов из таблицы 2. Я попытался с помощью подзапроса для table2:

create temp tablex as select column 1, column2 from table1 natural join select * from table2;

или

create temp tablex as select column 1, column2 from table1 natural join (select * from table2);

(и еще несколько ударов по правильной настройке), но все это дает мне синтаксическую ошибку «рядом с выбором». Я могу сделать слияние прекрасным, если я создаю подмножество столбцов таблицы1 раньше времени и сделаю естественное слияние полученных двух таблиц без каких-либо «выборок». Но я думаю, что я должен быть в состоянии сделать это в одном выражении SQL. Что я делаю неправильно? (При необходимости я могу создать модель, но я предполагаю, что я просто пропустил точку в правильном синтаксисе). Заранее благодарим за помощь. Ларри Hunsicker

+0

Каковы столбцы исходных таблиц? Какие столбцы вы хотите иметь в результате? –

ответ

1
create temp tablex as select table1.column1, table1.column2, table2.column3, table2.column4 from table1, table2 where table1.PrrimaryKey = table2.ForiegnKey; 

вы можете сделать это, как это.

1

Да. Это работает.

create temp table a as select b.col1, b.col2, c.* from table1 as b natural join table2 as c;

Большое спасибо.

Смежные вопросы