sqlite使用create table将连接语法保留为

时间:2015-04-04 19:02:04

标签: sqlite left-join

我在sqlite3中有两个大表,需要进行左连接并创建一个新表(myTable)。我还需要匹配每个表中的两列(不同的名称),然后将它们重命名为第三个表(myTable)。下面是我当前的代码,但最后我收到一个错误:模糊列名称faa.city

表1:飞机

表2:faa

首先,我将airplane.code与faa.iata匹配,然后将其重命名为oCity(myTable.oCity)。其次,我将airplane.dCode与faa.city匹配,并将其重命名为dCity(myTable.dCity)。

CREATE TABLE myTable AS
SELECT airplane.code AS oCity, faa.city AS dCity, airplane.month, airplane.dayOfMonth, airplane.uniqueCode, airplane.fNumber, airplane.scheduledTime
FROM airplane, faa
LEFT JOIN faa
WHERE airplane.code = faa.iata
AND airplane.dCode = faa.city;

1 个答案:

答案 0 :(得分:1)

首先,您需要一个on子句。其次,您需要使用正确的表别名。第三,您不需要在faa条款中提及from两次:

CREATE TABLE myTable AS
    SELECT a.code AS oCity, faa.city AS dCity, a.month, a.dayOfMonth, 
           a.uniqueCode, a.fNumber, a.scheduledTime
    FROM airplane a LEFT JOIN
         faa
         ON a.code = faa.iata AND a.dCode = faa.city;

一个简单的规则:永远不要在from子句中使用逗号。