我有一个相对简单的问题需要解决。我是SQL初学者,非常感谢您的帮助。
我一直试图将“customer”表中的一列(bond)中的所有唯一字符串导入到我在“bonds”表中创建的新列中。
我一直在使用以下代码:
INSERT INTO bonds(bond_customer_name) SELECT DISTINCT bond FROM customer;
虽然SELECT DISTINCT本身选择了正确的25条记录,但当我运行上述查询时,将导入1500多条记录,其中很大一部分字段为空。
新的bond_customer_name列也具有与原始bond列相同的数据类型(VARCHAR(16))。
最佳答案
问题是,我在为bond_customer_name添加列时创建了一个空值列表。相反,在创建表时,我使用以下代码创建了一个列name:
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,并在其中添加了一个条件:
INSERT INTO bonds(name) SELECT DISTINCT bond FROM customer WHERE bond IS NOT NULL;
感谢所有的帮助,这给了我想要的结果!