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