我正在学习SQL,到目前为止已经构建了一个小数据库。现在我有两个名为<div id="bullet" style="position:absolute; top:100px; width: 15px; height:15px; background-color: #000;"></div>
<svg height="200" width="200" style="position:absolute; top: 0px; left: 100px;">
<polygon points="100,10 200,200 0,200" style="fill:#23ac6a;"/>
</svg>
和countries_visited
的表,其中包含以下架构
regions_visited
:[countries_visited
,id
,countries
]
year_visited
:[regions_visited
,r_id
,regions
,c_id
]
month_visited
中的id
列是主键,countries_visited
的{{1}}列是与c_id
相关联的外键
regions_visited
中的countries_visited
列是新创建的,所有条目现在都是month_visited
。我想要做的是将条目单独插入到具有条件的新列中。
所以,我在StackOverflow中的前面的例子中尝试了以下语句,
regions_visited
通过在MySQL服务器上运行此命令,它显示以下错误:
错误1064(42000):您的SQL语法有错误;检查 手册,对应右边的MySQL服务器版本 在'FROM regions_visited INNER JOIN countries_visited附近使用的语法 在Regions_visited.c_id =第1行的'coun'
但是,如果忽略语句的NULL
和UPDATE regions_visited
SET month_visited = 9
FROM countries_visited
JOIN regions_visited ON countries_visited.id = regions_visited.c_id
WHERE regions_visited.regions = 'Seoul'
AND countries_visited.year_visited = 2006
AND countries_visited.countries = 'South Korea';
部分,mysql会显示我想要更新的只有1行的连接表。我做错了什么?如何使这项工作?
提前谢谢!
答案 0 :(得分:0)
在MySQL中,join
子句位于set
子句之前:
UPDATE regions_visited rv
JOIN countries_visited cv ON ON cv.id = rv.c_id
SET month_visited = 9
WHERE rv.regions = 'Seoul' AND
cv.year_visited = 2006 AND
cv.countries = 'South Korea';
答案 1 :(得分:0)
在Join
之前移动SET
。试试这个
UPDATE regions_visited
JOIN regions_visited
ON countries_visited.id = regions_visited.c_id
SET month_visited = 9
WHERE regions_visited.regions = 'Seoul'
AND countries_visited.year_visited = 2006
AND countries_visited.countries = 'South Korea';