2014-01-31 28 views
0

我有一個2表假期和包。sqlite3更新與另一個表的內連接

節假日ID有(節假日ID,holidayName)

holidayId INTEGER Primary Key NOT NULL 
holidayName varchar(45) NOT NULL 

包的屬性

packageId INTEGER Primary Key NOT NULL 
holidayId INT NOT NULL 
endDate varchar(45) NOT NULL 
FOREIGN KEY(holidayId) References Holiday(holidayId) 

我想更新結束日期從包表匹配來holidayName的假期表在sqlite3的價值值

含義

如果這是初始值

Holiday table 
    holidayName = "Package A"; 

    Package table 
    endDate = "31-01-2014" 

,我現在我想更新從「31-01-2014」到「30-01-2014」的結束日期值,

  • 它將匹配針對節假日ID節日通過使用內部聯接使用包表中的fk.holidayId表
  • 從假期表中獲取假名,並查找假名=「包A」。
  • 如果發現holidayName =「包A」,它將更新endDate值。

我想這

sqlite3 update fail attempt

很抱歉,如果我的解釋不明確,因爲我真的不怎樣短語我的問題,並盡了最大努力句話吧。

回答

1

你可以嘗試:

UPDATE package 
SET endDate = '04-02-2014' 
WHERE holidayid in ( 
    SELECT holidayid 
    FROM Holiday 
    WHERE holidayName = 'Package A' 
) ; 
+0

感謝你的幫助 – user3213758