2011-11-25 95 views
1

我試圖編寫一個過程來更新兩個表,但我有點卡在語法。編寫此更新聲明的正確方法是什麼?

這些表格被命名爲SupportTicketsTbltblSupportEvent,這些表格之間的鏈接是名爲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 

我能想到的解決,這是選擇的方式所有過期的機票ID都轉換成表格,然後在SupportTicketsTbl上進行更新,其中機票ID在我的表格變量中,儘管這看起來有點混亂。有沒有更好的方式來做這個更新聲明/連接等?

我問,因爲雖然我可以自己解決問題,它可能會執行足夠快的id喜歡瞭解這樣做的正確方法。

謝謝

回答

3

我相信這樣做會比創建一個臨時表更好。

+0

謝謝,我應該看到,大聲笑,很好的答案。 – Purplegoldfish

相關問題