SQL查询将列从excel工作表添加到mysql表?

SQL查询将列从excel工作表添加到mysql表?,mysql,sql,excel,Mysql,Sql,Excel,mySQL数据库中的表与excel表中的表相同。但是,该工作表有一个额外的列,我希望添加到mysql表中 表中的列显示abc:id、name、dob 表中的列显示pqr:id、姓名、出生日期、性别 现在,我希望将excel工作表中的性别列添加到与特定id对应的表中,而不删除该表 LOAD DATA INFILE '/path/pqr.csv' INTO TABLE abc FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' L

mySQL数据库中的表与excel表中的表相同。但是,该工作表有一个额外的列,我希望添加到mysql表中

表中的列显示abc:id、name、dob 表中的列显示pqr:id、姓名、出生日期、性别

现在,我希望将excel工作表中的性别列添加到与特定id对应的表中,而不删除该表

LOAD DATA INFILE '/path/pqr.csv' 
INTO TABLE abc
FIELDS TERMINATED BY ',' 
       OPTIONALLY ENCLOSED BY '"'
LINES  TERMINATED BY '\n'
但这将用于新的导入,而不是更新表

LOAD DATA INFILE '/path/pqr.csv' 
INTO TABLE abc
FIELDS TERMINATED BY ',' 
       OPTIONALLY ENCLOSED BY '"'
LINES  TERMINATED BY '\n'
表中的列显示abc:id、name、dob

表中的列显示pqr:id、姓名、出生日期、性别

创建一个临时表
temporary
,将数据导入该表,然后更改
abc
添加一个新列
gender
,然后使用
temporary
更新
abc
中的gender,最后删除
temporary

CREATE TABLE temporary (id int, name varchar(100), dob date, gender char(1), PRIMARY KEY (id));

LOAD DATA INFILE '/path/pqr.csv'  
INTO TABLE temporary  
FIELDS TERMINATED BY ','  
       OPTIONALLY ENCLOSED BY '"'  
LINES  TERMINATED BY '\n'  

ALTER TABLE abc ADD COLUMN (gender varchar(1));

UPDATE abc  
SET gender = (SELECT gender FROM temporary WHERE temporary.id = abc.id);

-- some DBs need a FROM clause, use either one which works
UPDATE abc  
SET gender = (SELECT gender FROM temporary WHERE temporary.id = abc.id)  
FROM temporary;

SELECT * FROM abc;

DROP TABLE temporary;

在不知道您使用的是哪种DBMS的情况下,答案就不可能更具体了。

您应该真正在SQL端重新创建表,然后将文件加载转移到转移表中,然后只使用从转移表到事实表的insert into语句。希望这会有所帮助—在开始使用列之前,您有一组空白的性别行,或者您可以更改表—添加列,转移另一个包含记录ID和性别值的表,然后运行set update set语句,根据转移表中的ID设置性别值