[英]MYSQL - Subquery on same table in WHERE clause of UPDATE statement
[英]SQL Update statement with subquery in the where clause same table
我目前是一名学生,我正在尝试解决SQL的一个小问题。 我想根据来自同一张表的过滤结果在一张表上执行更新语句。 这是我的桌子:
这是我到目前为止的查询:
UPDATE ComplexityLessons
SET ACADEMYRATIO = '0,896'
WHERE (
SELECT c.START, c.DATE, c.ACTIVITY, c.ACADEMY
from ComplexityLessons c
join (
SELECT b.ACTIVITY, b.START, b.DATE
FROM ComplexityLessons b
) as b
on c.ACTIVITY = b.ACTIVITY and c.DATE = b.DATE and c.START = b.START
having COUNT(DISTINCT ACADEMY) = 2)
因此,总而言之,我只想在两个学院同时进行相同活动的地方更新“ ActivityRatio”列。 当我仅使用子查询时,我会获得同时执行相同活动的学院,但是我无法弄清更新语句。 预先感谢您的帮助 !
UPDATE ComplexityLessons SET ACADEMYRATIO = '0,896'
WHERE ( SELECT c.START, c.DATE, c.ACTIVITY, c.ACADEMY
from ComplexityLessons c
join ( SELECT b.ACTIVITY, b.START, b.DATE
FROM ComplexityLessons b ) as b
on c.ACTIVITY = b.ACTIVITY and c.DATE = b.DATE and c.START = b.START
having COUNT(DISTINCT ACADEMY) = 2)
应该在哪里具有条件,子查询应返回ID。 例如
UPDATE ComplexityLessons SET ACADEMYRATIO = '0,896'
WHERE <id> in ( SELECT <id> from ComplexityLessons c
join ( SELECT b.ACTIVITY, b.START, b.DATE
FROM ComplexityLessons b ) as b
on c.ACTIVITY = b.ACTIVITY and c.DATE = b.DATE and c.START = b.START
having COUNT(DISTINCT ACADEMY) = 2)
应该是表之间的前键。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.