2013-01-31 46 views
0

我有一個表m4zbv_mt_cfvalues和喜歡,如果一個記錄不到風度與CF_ID相同的值存在插入一條記錄和link_id使用mysql插入與選擇的語句

條件和價值,我喜歡這樣做會插入來自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語句時,它停止工作。 我無法弄清楚如何獲得的選擇條件的所有記錄,並從表中link_id m4zbv_mt_links

感謝所有幫助

曼弗雷德

+0

感謝您的回覆,但我仍然收到上述錯誤。似乎沒有正確傳遞提交的link_id。你有一個想法如何糾正這個錯誤?兩個表都存在link_id字段。 謝謝 Regrads Manfred –

回答

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%') 
) 
; 
+0

「#1054 - '字段列表'中的未知列'link_id'」謝謝你的回覆,但我仍然收到上述錯誤。似乎沒有正確傳遞提交的link_id。你有一個想法如何糾正這個錯誤?兩個表都存在link_id字段。 –