我在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
答案 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