Mysql 更新条件依赖于其他表的表中的记录
我在MySQL中有2个表Mysql 更新条件依赖于其他表的表中的记录,mysql,join,Mysql,Join,我在MySQL中有2个表 项目: ProjectID ProjectStatus 1 0 2 0 3 0 4 0 5 0 报价: QuotationID ProjectID QuotationNumber
- 项目:
ProjectID ProjectStatus
1 0
2 0
3 0
4 0
5 0
QuotationID ProjectID QuotationNumber
1 1 X001
2 2 X002
3 3 X003
4 1 X004
5 2 X005
我需要一个SQL语法,可以更新或编辑项目表中的项目状态
如果项目在报价表中,则将项目状态更改为1
如果项目不在报价表中,则将项目状态更改为2
因此,在运行该SQL语法后,项目表将如下所示:
- 项目(查询运行后):
感谢您的帮助。您也可以通过两次更新(可能在事务内部)来完成此操作,并使用内部连接而不是外部连接。哈哈,答案与mine@Kickstart是的,我落后你几秒钟。我有一种感觉,如果我重新振作,我会看到我的是多余的,但见鬼,它发生了。但是,即使在格式上,响应也是如此相似。只是你给表格加了别名,我差点就加了(如果我加了,我可能会用相同的别名)@Kickstart奇怪的是,已经15分钟了,还没有人发布使用
EXISTS
的版本。:)Lol.甚至在和子选择中。甚至是作为任务一部分的相关子选择。
UPDATE Project
LEFT OUTER JOIN Quotation
ON Project.ProjectID = Quotation.ProjectID
SET Project.ProjectStatus = IF(Quotation.ProjectID IS NULL, 2, 1)
UPDATE Project
LEFT OUTER JOIN Quotation
ON Project.ProjectID = Quotation.ProjectID
SET Project.ProjectStatus = IF(Quotation.ProjectID IS NULL, 2, 1)
UPDATE Project p
LEFT JOIN Quotation q
ON p.ProjectID = q.ProjectID
SET ProjectStatus = IF(q.ProjectID IS NULL, 2, 1)