Mysql使用带有select语句的条件和值的Insert

时间:2013-01-31 17:36:03

标签: mysql sql

我有一个表m4zbv_mt_cfvalues并且喜欢在cf_id和link_id

中存在具有相同值的记录时插入记录

我喜欢对select语句中的所有记录执行此插入操作,link_id应该用于第一个条件和插入。

INSERT INTO m4zbv_mt_cfvalues (cf_id, link_id,value) 
 SELECT 87, link_id ,1
 FROM dual 
 WHERE NOT EXISTS
    ( SELECT *
      FROM m4zbv_mt_cfvalues
      WHERE cf_id = 87
        AND link_id = link_id
    )
    SELECT link_id from from m4zbv_mt_links where Upper(link_name) like'%APPLIANCE  DEFAULT PASSWORDS%' ;

如果我提供所有值,则Insert正在运行。当我添加Select link_id语句时它停止工作。 我无法弄清楚如何获取选择条件的所有记录和表m4zbv_mt_links中的link_id

感谢您的帮助

曼弗雷德

1 个答案:

答案 0 :(得分:0)

你的代码就是那样

 SELECT link_id from from

只需删除一个FROM

试试这个

   INSERT INTO m4zbv_mt_cfvalues (cf_id, link_id,value) 
    SELECT 87, link_id ,1
    FROM dual 
    WHERE NOT EXISTS
             ( SELECT *
              FROM m4zbv_mt_cfvalues
              WHERE cf_id = 87
              AND link_id = (SELECT link_id from m4zbv_mt_links where Upper(link_name) like'%APPLIANCE  DEFAULT PASSWORDS%')
)
 ;