Mysql选择查询不同的表进行比较

时间:2013-09-29 18:21:49

标签: mysql foreign-keys

首先抱歉,如果这个问题非常糟糕,但我真的很困惑,谷歌没有帮助:(

我有一个名为“project”的表,其中包含以下列:

Name  |  Description  |  Max Grade  |
  1   |  blabla       |      2      |

我有另一个名为“uploaded_projects”的表,其中包含以下columng:

Pname  | Team Code  | Grade  |  Max Grade           |
  1    |  234       |  2     | (that's what i want) |

我使用以下代码添加了一个外键constrait。

ALTER TABLE uploaded_projects 
ADD CONSTRAINT 'fk_u_p' FOREIGN KEY 'fk_u_p'(Pname)
REFERENCES 'project'(Name)

现在我想用第一个表的“最高等级”列的值填充第二个表的“Max Grade”列,这些列通过列“Name”(第一个表格的主键)和“Pname”(第二个表列)进行连接)。我怎样才能做到这一点?

提前谢谢

2 个答案:

答案 0 :(得分:1)

您可以尝试更新声明

UPDATE uploaded_projects, project
SET    uploaded_projects.max_grade= project.max_grade
WHERE  project.`name`= uploaded_projects.pname

或使用join

UPDATE uploaded_projects AS t1
  INNER JOIN project AS t2 ON t1.pname= t2.`name`
SET t1.max_grade = t2.max_grade

答案 1 :(得分:1)

Update upload_projects
Inner join project on (upload_projects.pName = project.Name )
set upload_projects.MaxGrade = project.MaxGrade