从另一个表

时间:2016-01-14 12:24:00

标签: sql ms-access

我在下面有一个查询工作。我的问题是我似乎无法改变它所以它每次更新可用性表中的LessonTaken字段,除非StudentID = 0。因此,如果studentID<>,则仅希望它更新字段0;

UPDATE Availability SET LessonTaken = 'Y'
WHERE (
   SELECT LessonID
   FROM Lesson
   WHERE Availability.StudentID = Lesson.StudentID
);

表格如下:

状况:

AvailabilityID 学生卡 开始时间 时间结束 LessonTaken NoOfFrees

课:

LessonID 学生卡 开始时间 时间结束 DAYOFWEEK LessonPaid。

我有一个查询,选择具有最少frees的学生(选择DayOfWeek,StartTime,EndTime)并将其插入到相应字段的LessonTable中。这是一个时间表计划。我希望这很清楚,非常感谢:)。

3 个答案:

答案 0 :(得分:1)

这是针对T-SQL,使用join

update avail
    set LessonTaken = 'Y' 
from Availability avail
    join Lesson less on avail.StudentID = less.StudentID
where avail.StudentID <> 0
祝你好运

答案 1 :(得分:1)

添加您想要帮助的条件吗?

UPDATE Availability
    SET LessonTaken = 'Y'
WHERE Availability.studentID <> 0 AND
      (SELECT LessonID
       FROM Lesson
       WHERE Availability.StudentID = Lesson.StudentID
      );

答案 2 :(得分:0)

这可能听起来很傻,但你试过了吗?

UPDATE Availability SET LessonTaken = 'Y'
WHERE (SELECT LessonID
       FROM Lesson
       WHERE Availability.StudentID = Lesson.StudentID
       AND Lesson.StudentID != 0 
       );

??希望它有所帮助!