SQL - 将 INSERT INTO 与 SELECT DISTINCT 结合使用导致导入 NULL 值

SQL - Using INSERT INTO with SELECT DISTINCT resulting in NULL values being imported

我有一个相对简单的问题需要解决。我是 SQL 的初学者,非常感谢任何帮助。

我一直在尝试将 'customer' table 中的一列(键)中的所有唯一字符串导入我在 'bonds' 中创建的新列table.

我一直在使用以下代码:

INSERT INTO bonds(bond_customer_name) SELECT DISTINCT bond FROM customer;

虽然 SELECT DISTINCT 本身选择了正确的 25 条记录,但当我 运行 上述查询时,正在导入 1500 多条记录,其中很大一部分字段为 NULL。

新的 bond_customer_name 列也与原始债券列 (VARCHAR(16)) 具有相同的数据类型。

问题是我在为 bond_customer_name 添加列时创建了一个 NULL 值列表。相反,我在创建 table 时创建了一个名称列,使用以下代码:

CREATE TABLE 'bonds' ('id' int(11) NOT NULL AUTO_INCREMENT,'name' varchar(255) DEFAULT NULL, PRIMARY KEY('id')) DEFAULT CHARSET = UTF8;

然后我使用以下代码成功地将 Customer.bond 中存在的唯一字符串导入 Bonds.name,添加条件 WHERE:

INSERT INTO bonds(name) SELECT DISTINCT bond FROM customer WHERE bond IS NOT NULL;

这给了我想要的结果,感谢所有帮助过的人!