Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL-使用INSERT INTO和SELECT DISTINCT将导致导入空值_Mysql_Sql_Phpmyadmin - Fatal编程技术网

Mysql SQL-使用INSERT INTO和SELECT DISTINCT将导致导入空值

Mysql SQL-使用INSERT INTO和SELECT DISTINCT将导致导入空值,mysql,sql,phpmyadmin,Mysql,Sql,Phpmyadmin,我有一个相对简单的问题需要解决。我是SQL初学者,非常感谢您的帮助 我一直在尝试将“customer”表中一列(bond)中的所有唯一字符串导入到我在“bonds”表中创建的新列中 我一直在使用以下代码: INSERT INTO bonds(bond_customer_name) SELECT DISTINCT bond FROM customer; 虽然SELECT DISTINCT本身选择了正确的25条记录,但在我运行上述查询时,导入了1500多条记录,其中大部分字段为空 新的bond_c

我有一个相对简单的问题需要解决。我是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;

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

它是将25行NULL作为bond_customer_name插入,还是仅插入一行?它将插入25行NULL。您在MS SQL中的语法似乎正确:“插入表2(列名称))从表1中选择列名称;”使用mysql客户端运行查询时是否收到任何警告(“查询后显示警告”将给出列表)?您能为这两个表提供create table语句吗?