sqlite 左连接语法与 create table as

sqlite left join syntax with create table as

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

Table 1: 飞机

Table 2: 发

首先,我将 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;

首先,您需要一个 on 子句。其次,您需要使用正确的 table 别名。第三,你不需要在from子句中提到两次faa

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 子句中使用逗号。