我目前是一名学生,我正试图解决SQL的一个小问题。我想根据来自同一个表的过滤结果在表上执行更新语句。 Here is the table I have:SQL更新语句与where子句中的子查询相同的表
这是查询我到现在:
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”仅在2所院校在同一时间进行同样的活动。当我仅使用子查询时,我得到了同时执行相同活动的院校,但我无法弄清楚更新声明。 预先感谢您的帮助!
您使用MySQL,MS SQL Server或Oracle吗?不要标记不涉及的产品! – jarlh
@jarlh:我使用phpmyadmin,所以MySQL。 –