移除&;在mySQL中使用连接添加行
我想更新碰巧在一对多连接中链接的两个表 在运行适当的SQL函数之前,我使用R连接到数据库进行预处理。我的问题是,我计划使用的SQL函数是一种好方法,还是有更好的方法来容纳这种类型的数据 范例移除&;在mySQL中使用连接添加行,mysql,Mysql,我想更新碰巧在一对多连接中链接的两个表 在运行适当的SQL函数之前,我使用R连接到数据库进行预处理。我的问题是,我计划使用的SQL函数是一种好方法,还是有更好的方法来容纳这种类型的数据 范例 DataFrame in R ID GroupID Group_Name Scores 1 1 "Ride High" "100,90,85" 2 2 "Flaming Idiots" "90,50,78" 生成
DataFrame in R
ID GroupID Group_Name Scores
1 1 "Ride High" "100,90,85"
2 2 "Flaming Idiots" "90,50,78"
生成表的R代码(我使用的是Tidyverse)
我如何合理地解决这个问题的是,1对1连接可以是使用联接的直接更新,但1对多列必须首先从数据库中删除现有数据,然后才能添加新数据
最终结果
Group Table
ID GroupID Group_Name ID GroupID Group_Name
1 1 "Low Rider" 1 1 "Ride High"
2 2 "Hot Flames" -> 2 2 "Flaming Idiots"
3 3 "Happy Roads" 3 3 "Happy Roads"
4 4 "Runners" 4 4 "Runners"
Score Table
ID GroupID Scores ID GroupID Scores
# 1 100 # 1 100
# 1 90 # 1 90
# 2 0 # 1 85
# 3 70 # 2 90
# 3 70 # 2 50
# 3 70 # 2 78
... # 3 70
# 3 70
# 3 70
...
这是有效的还是合乎逻辑的 Group是mysql中的保留字,您需要用反勾号括住每个事件。或者更改名称,Group是mysql中的保留字,您需要用反勾号括住每个事件。或者更改名称,
UPDATE Group_Table Gr
INNER JOIN Group_Update UG on Gr.GroupID = UG.GroupID
set Gr.Group_Name = UW.Group_Name;
DELETE Sc FROM Score_Table Sc
RIGHT JOIN Score_Update SU ON sc.GroupID = SU.GroupID;
INSERT INTO Score (GroupID,Scores)
SELECT
GroupID, Scores
FROM
Score_Update;
Group Table
ID GroupID Group_Name ID GroupID Group_Name
1 1 "Low Rider" 1 1 "Ride High"
2 2 "Hot Flames" -> 2 2 "Flaming Idiots"
3 3 "Happy Roads" 3 3 "Happy Roads"
4 4 "Runners" 4 4 "Runners"
Score Table
ID GroupID Scores ID GroupID Scores
# 1 100 # 1 100
# 1 90 # 1 90
# 2 0 # 1 85
# 3 70 # 2 90
# 3 70 # 2 50
# 3 70 # 2 78
... # 3 70
# 3 70
# 3 70
...