我有两张这样的桌子:
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行
我不知道如何调试这个,因为我尝试了很多查询,但没有人工作,错误信息几乎与上面的错误信息相同...
求助!
答案 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;