2011-11-25 6 views
1

Я пытаюсь написать процедуру для обновления двух таблиц, но я немного застрял в синтаксисе.Каков правильный способ написать этот оператор обновления?

Таблицы называются SupportTicketsTbl и tblSupportEvent, связь между этими таблицами - это третья таблица с именем tblTicketsInEvents.

У tblSupportEvent есть список всех событий, которые находятся в расписании лиц, каждое событие имеет время начала и окончания, эта процедура выполняется как задание sql и проверяет, превышает ли текущее время больше времени окончания события, и если поэтому он обновляет свой статус.

Теперь синтаксис это легко:

UPDATE 
    tblSupportEvent 
SET 
    [status] = 3 
WHERE 
    eventend < CURRENT_TIMESTAMP 
AND 
    [status] = 1 

Теперь вот моя проблема, это событие связано с билетом, поэтому, когда событие связано с билетом истекает Я хочу, чтобы установить билеты присвоенные значение на 0.

Этот SELECT запроса показывает связь между таблицами:

SELECT 
    * 
FROM 
    tblSupportEvent e 
JOIN 
    tblTicketsInEvents tie 
ON 
    e.id = tie.eventID 
JOIN 
    SupportTicketsTbl t 
ON 
    t.TicketID = tie.ticketID 

Как я могу думать, чтобы решить эту проблему, чтобы выбрать все истекшие идентификаторы билетов в таблицу затем сделают обновление на SupportTicketsTbl, где идентификатор билета находится в моей переменной таблицы, хотя это кажется немного грязным. Есть ли лучший способ сделать это с помощью инструкции обновления/объединения и т. Д.?

Я спрашиваю, потому что, хотя я могу решить проблему самостоятельно, и она, вероятно, будет выполнять достаточно быстрый идентификатор, чтобы знать правильный способ сделать это.

Благодаря

ответ

3

Я считаю, что делать это таким образом, будет работать лучше, чем создавать временную таблицу.

+0

Спасибо, я должен был увидеть этот LOL, хороший ответ. – Purplegoldfish

Смежные вопросы