ENGINE InnoDB
表A
Id_A INT AUTO_INCREMENT PRIMARY KEY;
NameA VARCHAR;
SurnameA VARCHAR;
表B
Id_B INT AUTO_INCREMENT PRIMARY KEY;
NameB VARCHAR;
SurnameB VARCHAR;
表C
Id_C INT AUTO_INCREMENT PRIMARY KEY;
Des VARCHAR;
表D
Id_D INT AUTO_INCREMENT PRIMARY KEY;
Date_Time DATETIME;
Id_A INT;
Id_B INT;
Id_C INT;
表E
Id_E INT AUTO_INCREMENT PRIMARY KEY;
Date DATE;
Time TIME;
NameA VARCHAR;
SurnameA VARCHAR;
NameB VARCHAR;
SurnameB VARCHAR;
Des VARCHAR;
我已将数据从txt文件导入表A和表E.还将表E中的唯一数据添加到表B和表C.现在我必须将数据添加到表D中(来自A,B,C的ID号以匹配表E中的日期和时间)。我希望这是有道理的。谢谢!
答案 0 :(得分:0)
这应该有效:
INSERT INTO TableD (Date_Time, Id_A, Id_B, Id_C)
SELECT TIMESTAMP(e.Date, e.Time),
a.Id_A,
b.Id_B,
c.Id_C
FROM TableE e
INNER JOIN TableA a on e.NameA = a.NameA AND e.SurnameA = a.SurnameA
INNER JOIN TableB b on e.NameB = b.NameB AND e.SurnameB = b.SurnameB
INNER JOIN TableC c on e.Des = c.Des
请注意,如果您的表A或B中有一些姓名相同的人,或者表C的Des不是唯一的,则这种导入方式将失败。