Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sqlite3使用另一个表的内部联接进行更新_Sqlite - Fatal编程技术网

sqlite3使用另一个表的内部联接进行更新

sqlite3使用另一个表的内部联接进行更新,sqlite,Sqlite,我有两张桌子的度假套餐 holidayId的属性为(holidayId,holidayName) 包装 packageId INTEGER Primary Key NOT NULL holidayId INT NOT NULL endDate varchar(45) NOT NULL FOREIGN KEY(holidayId) References Holiday(holidayId) 我想根据sqlite3中假日表中holidayName的值更新包表匹配中endDate的值 意义 如果这是

我有两张桌子的度假套餐

holidayId的属性为(holidayId,holidayName)

包装

packageId INTEGER Primary Key NOT NULL
holidayId INT NOT NULL
endDate varchar(45) NOT NULL
FOREIGN KEY(holidayId) References Holiday(holidayId)
我想根据sqlite3中假日表中holidayName的值更新包表匹配中endDate的值

意义

如果这是初始值

  Holiday table
  holidayName = "Package A";

  Package table
  endDate = "31-01-2014"
现在我想将endDate值从“31-01-2014”更新为“30-01-2014”

  • 通过使用内部联接,它将与holidayId表中的holidayId和package表中的fk.holidayId相匹配
  • 从holiday表中获取holidayName并找到holidayName=“package A”
  • 如果找到holidayName=“Package A”,则会更新endDate值
我试过这个

抱歉,如果我的解释不清楚,因为我不知道如何表达我的问题,并且已经尽力表达了。

您可以尝试:

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