MySQL在同一个表上插入select

时间:2018-03-29 02:54:16

标签: mysql mysql-error-1093

我正在尝试迁移到新数据库,并尝试通过在“TMP”列下保存以前的ID来保留父子层次结构问题是当我尝试通过选择所述TMP列来获取相关ID时MySQL Insert Query #1093错误。
以下是一些要查看的代码:

    INSERT INTO UnitTree (DealerID, Label, TMP) VALUES
    ((SELECT ID FROM Dealer WHERE Name='Dealer1'),'Folder1', (SELECT ID FROM  UnitTree WHERE TMP=2)),
    ((SELECT ID FROM Dealer WHERE Name='Dealer2'),'Folder2',(SELECT ID FROM UnitTree WHERE TMP=3)),
    ((SELECT ID FROM Dealer WHERE Name='Dealer3'),'Unit1',(SELECT ID FROM UnitTree WHERE TMP=4));

注意:所有子查询都在唯一列上,并且只返回1个结果

我已经找到了答案并且没有找到答案,所以如果有答案我会道歉。谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

看这个:

SELECT ID FROM Dealer WHERE Name='Enertia'

此查询不在db ..中返回此名称的id。

答案 1 :(得分:0)

它通过以下查询对我有用:

INSERT INTO mydata (col1, col2)
values(123,(SELECT col2 FROM (SELECT col2 FROM mydata) a));