2016-12-08 4 views
1

Ich versuche, eine neue SQLite-Tabelle zu erstellen, die nur ausgewählte Spalten aus einer Tabelle mit allen Spalten aus der zweiten Tabelle zusammenführt. Die beiden Tabellen teilen sich nur eine Spalte (Primärschlüssel für eine Tabelle und Fremdschlüssel für die zweite Tabelle).SQLite: Join ausgewählter Spalten aus zwei Tabellen

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

Die Läufe beitreten, aber die resultierende Tabelle hat nur die Spalten von Tabelle 1 - keine der Spalten aus der Tabelle 2. Ich habe versucht, eine Unterabfrage für table2 mit:

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

oder

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

(und ein paar mehr Stiche, um es richtig zu machen), aber diese alle geben mir einen Syntaxfehler "nahe wählen." Ich kann die Zusammenführung gut tun, wenn ich die Spaltenuntermenge der Tabelle1 im Voraus erstelle und eine natürliche Zusammenführung der resultierenden zwei Tabellen ohne irgendwelche "Auswahlen" mache. Aber ich denke, dass ich das in einer einzigen SQL-Anweisung tun könnte. Was mache ich falsch? (Ich kann bei Bedarf ein Modell erstellen, aber ich nehme an, dass ich gerade einen Punkt in korrekter Syntax verpasst habe). Vielen Dank im Voraus für Ihre Hilfe. Larry Hunsicker

+0

Was sind die Spalten der ursprünglichen Tabellen? Welche Spalten möchten Sie im Ergebnis haben? –

Antwort

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

Sie es so kann tun.

1

Ja. Das funktioniert.

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

Vielen Dank.