2016-01-13 3 views
-1

У меня есть три таблицы в базе данных, (не знаю, как связать это, но при необходимости делать). Я использую Microsoft Access в качестве хранилища данных для программы расписания, которую я делаю. У меня есть запрос, который выбирает ученика, который может выполнить определенный временной интервал и вставляет его в «Таблицу уроков». Теперь мне нужно обновить поле «LessonTaken» с помощью «Y», чтобы этот ученик снова не был выбран. Чтобы убедиться, что нужные поля обновлены, studentID для LessonID = 1 говорит, что нужно соответствовать studentId в таблице доступности и обновлять эти поля. Однако я не вижу никакого способа сделать это. Если вам нужна база данных, чтобы увидеть, что я имею в виду, не стесняйтесь спрашивать.Заявление об обновлении SQL с использованием данных из другой таблицы

Большое спасибо.

EDIT:

Student Таблица: StudentID FirstName LastName Adrress ContactNo

LessonTable LessonID StudentID DayOfWeek время_запуска EndTime LessonPaid

Таблица доступности:AvailabilityID StudentID DayOfWeek StartTime EndTime LessonPaid

Вы увидите «Урок таблицы» имеет LessonId 1, а StudentID из 3. Оператор обновления необходимо обновить «Таблица доступности» для записей, которые имеют тот же StudentID в LessonTable, у которого есть LessonID 1. Таким образом, в этом примере все записи в таблице доступности, у которых есть идентификатор studentID 3, должны иметь поле «LessonTaken», обновленное с помощью «Y». Надеюсь это поможет.

+0

Вам нужно узнать некоторые 'SQL JOIN/subquery' синтаксис. –

+1

Отображение трех таблиц с полями для заполнения поможет нам помочь. –

ответ

0

Вам необходимо изучить синтаксис SQL JOIN/subquery. Например:

UPDATE targetTable 
SET LessonTaken = 'Y' 
WHERE EXISTS (
    SELECT 1 
    FROM anotherTable 
    WHERE targetTable.col1 = anotherTable.col2 
) 
0

As Kilanny сказал (а).
Я не слишком уверен, какие поля вы хотите обновить, и хотя. Я не могу вполне понять:

Для того, чтобы убедиться, что правые поля обновили studentID для LessonID = 1 говорят, что нужно соответствовать studentId в таблице доступности и обновить эти поля.

UPDATE (tbl_Student INNER JOIN tbl_Lesson ON tbl_Student.StudentID = tbl_Lesson.StudentID) 
        INNER JOIN tbl_Availability ON tbl_Student.StudentID = tbl_Availability.StudentID 
SET  tbl_Lesson.LessonPaid = 1, 
     tbl_Availability.LessonPaid = 1 
WHERE tbl_Student.StudentID = 2 
Смежные вопросы