在另一个表中使用已编辑数据更新一个表 - phpmyadmin - 无法找到字段错误

时间:2016-06-14 19:36:23

标签: mysql phpmyadmin

我一直在阅读并尝试我遇到的所有事情来解决我的问题。我有一个数据库表,我需要使用"编辑"中的值进行更新。 克隆的原文。

我首先尝试更新"该表但发现更新添加的条目到表不编辑已经存在的内容。我考虑过手动编辑,但有太多......我已经尝试过在phpmyadmin导入中设置的所有可能的组合......

场景:在共享主机上,使用phpmyadmin。表名= mailstudio表我想更新=潜在客户。具有更新/编辑值的表= clean_leads

需要更新的表格:jd_leads 有近100列,所以我只是在这里缩写:

1   id  int(11)                No   None    AUTO_INCREMENT  
2   owner_id    int(11)        Yes  NULL            
3   is_published    tinyint(1) No   None         
4   date_added  datetime       Yes  NULL    

表(clean_leads),包含我需要进入潜在客户表的编辑信息。

1   "id"            varchar(7)  utf8_general_ci     No          
2   "owner_id"      varchar(10) utf8_general_ci     Yes NULL            
3   "is_published"  varchar(3)  utf8_general_ci     Yes NULL        
4   "date_added"    varchar(21) utf8_general_ci     Yes NULL    

SQL Query我正在尝试运行。

UPDATE jd_leads
INNER JOIN clean_leads ON jd_leads.is_published = clean_leads.is_published
SET jd_leads.id=IF(clean_leads.id > 0, clean_leads.id, jd_leads.id)
WHERE clean_leads.id > is_published=0

这种格式似乎应该可以工作,但它会引发这些错误:

1054 - 未知栏' clean_leads.id'在'字段列表'和

1146 - 表' proje485_mailstu.jd_leads'不存在

我还试图反转逻辑并将未经编辑的数据放入新表中,除了错误是jd_leads.id之外,我得到的是相同的错误。

我已经阅读了关于这些错误我可以找到的每个线程,但这个nube无法弄明白。我现在已经在这里待了几天而且非常沮丧。任何帮助将不胜感激。

谢谢你,

2 个答案:

答案 0 :(得分:0)

我认为语法总是:

update some_table set some_column = some_value where some_condition;

如果你想加入某些东西,你需要添加一个FROM子句。在你的情况下:

UPDATE jd
SET jd.id=IF(cl.id > 0, cl.id, jd.id)
FROM
    jd_leads jd
    INNER JOIN clean_leads cl ON jd.is_published = cl.is_published

WHERE cl.id > jd.is_published=0 **(make sure to check this line here, because I don't know what table you referred)**

答案 1 :(得分:0)

最后一行有一些时髦的东西:

UPDATE jd_leads
INNER JOIN clean_leads ON jd_leads.is_published = clean_leads.is_published
SET jd_leads.id=IF(clean_leads.id > 0, clean_leads.id, jd_leads.id)
WHERE clean_leads.id > 0
AND jd_leads.is_published=0 /* Split from the line above */