将特定字段插入mysql表

时间:2019-02-19 21:42:18

标签: mysql

我在mysql数据库中有4个表。连接表,作者表,输出表和人员表。我必须导入一个具有outputID和personID但只能访问作者姓名列的csv文件,因此我已向作者表添加了一个自动递增主键。

我要查询将作者ID插入联接表中,其中与ID相关的特定作者与特定outputID匹配。

以下查询将插入作者ID,但全部插入联接表的底部,而没有任何匹配的输出ID

INSERT INTO output(a_fk) 
SELECT a.Author_ID 
FROM authors a 
INNER JOIN wholecsv w ON a.Author_Names = w.a_Author 
INNER JOIN outputlist ot ON ot.Output_ID = w.a_ID 
INNER JOIN output o ON o.Output_ID = ot.Output_ID

1 个答案:

答案 0 :(得分:0)

  

以下查询将插入作者ID,但全部插入联接表的底部,而没有任何匹配的输出ID

这就是INSERT的作用:向表中添加新记录。

看起来您实际上是在寻找UPDATE查询。为此,您需要调整JOIN逻辑,使其从output变为authors,例如:

UPDATE output o
INNER JOIN outputlist ot ON o.Output_ID = ot.Output_ID
INNER JOIN wholecsv ON ot.Output_ID = w.a_ID 
INNER JOIN authors  ON a.Author_Names = w.a_Author 
SET o.a_fk = a.Author_ID