我有两个mysql数据库:
数据库1和表: Employee
使用列: Employee_code
和 Employee _ID
db2 和表: Employee_log
使用列: Date
, Time
以及 Employee_ID
.
现在,我用表3创建了第三个数据库: Employee_Details
使用列: Employee_code
Employee_ID Date
和 Time
.
我还设法把日期插入 Employee_Details
使用以下sql查询的表:
INSERT INTO database3.Employee_Details(Employee_ID, Employee_Code)
SELECT Employee_ID, Employee_Code FROM database 1.Employee;
但是,现在我想包括 Date
以及 Time
从 db2 表: Employee_log
我试着使用上面的代码,但是日期被插入到表中 Employee_ID
在其他列值为空的新行中。
Example:
Employee_ID Employee_Code Date
1 1011
2 1012
Null Null 09/05/2018
Null Null 08/05/2018
那么,如何将日期插入到匹配项中 Employee_id
,谁能帮我一下吗。谢谢,
2条答案
按热度按时间flseospp1#
您可以先删除中的所有行来重新开始
database3.Employee_Details
.下一步,做一个
INSERT ... SELECT
就像你加入database1.Employee
以及database2.Employee_log
这一次。一般来说,联接将两个表的行组合在一起。如果
ON
子句对于这对行是真的。连接有一些不同的风格。这里我们使用
LEFT JOIN
. 在一个LEFT JOIN
左表的行(左表的行)JOIN
关键字)包含在结果中,即使右表中没有匹配的行。结果中的各个列都是空的,而不是右表中的列值,因为匹配行中没有值。相比之下
INNER JOIN
只包含左表中存在右表匹配行的行。要包含所有员工,即使没有可用的日志数据,我们也必须选择一个
LEFT JOIN
在这里。如果你不想重新开始,你可以更新
database3.Employee_Details
缺少值。我们再次使用
LEFT JOIN
把田地放在SET
子句中的相应值。然后删除不必要的空行
Employee_ID
.vktxenjb2#
您可以按以下方式插入:
您可能会发现创建表更简单: