无法从选择更新

时间:2011-05-26 20:23:22

标签: mysql select

我有两张这样的桌子:

mysql> describe tb_data_iae;
+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| id_dialecte        | int(11)      | NO   | PRI | NULL    | auto_increment | 
| nb_champs          | tinyint(4)   | NO   |     | 0       |                | 
+--------------------+--------------+------+-----+---------+----------------+

mysql> describe tb_dialecte;
+-------------------+--------------+------+-----+------------+----------------+
| Field             | Type         | Null | Key | Default    | Extra          |
+-------------------+--------------+------+-----+------------+----------------+
| id_dialecte       | int(11)      | NO   | PRI | NULL       | auto_increment |
| nb_champs         | tinyint(4)   | NO   |     | 0          |                | 
+-------------------+--------------+------+-----+------------+----------------+

我尝试更新来自第二张表的同一字段中的第一个表“nb_champs”字段

mysql> update tb_data_iae 
       set nb_champs=tb_dialecte.nbchamps  
      from tb_dialecte 
      where tb_dialecte.id_dialecte = tb_data_iae.id_dialecte;
  

错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在'tb_dialecte附近使用正确的语法,其中tb_dialecte.id_dialecte = tb_data_iae.id_dialecte'在第1行

我不知道如何调试这个,因为我尝试了很多查询,但没有人工作,错误信息几乎与上面的错误信息相同...

求助!

2 个答案:

答案 0 :(得分:2)

update tb_data_iae set nb_champs=(SELECT tb_dialecte.nbchamps 
from tb_dialecte 
where tb_dialecte.id_dialecte = tb_data_iae.id_dialecte);

虽然我问为什么在两个表中存储相同的值?

答案 1 :(得分:1)

当我查看http://dev.mysql.com/doc/refman/5.0/en/update.html时,看起来似乎不允许更新...来自

update tb_data_iae,tb_dialecte 
set tb_data_iae.nb_champs=tb_dialecte.nbchamps 
where nb_dialecte.id_dialecte = tb_data_iae.id_dialecte;