Sql 使用内部联接更新

Sql 使用内部联接更新,sql,sql-update,inner-join,javadb,Sql,Sql Update,Inner Join,Javadb,我正在使用JavaDB并处理同一数据库中的两个表 当车辆表的SellDate早于指定日期时,我尝试使用车辆表的SellDate列中的值更新SalesResp表中的PrevSales列。我使用两个表中的VIN列来匹配两个表之间的数据 在我的代码SQL state 42x01中,围绕内部联接不断出现错误 UPDATE SALESRESP JOIN VEHICLES ON (SALESRESP.VIN = VEHICLES.VIN) SET SALESRESP.PrevSale = VEHICLES

我正在使用JavaDB并处理同一数据库中的两个表

当车辆表的SellDate早于指定日期时,我尝试使用车辆表的SellDate列中的值更新SalesResp表中的PrevSales列。我使用两个表中的VIN列来匹配两个表之间的数据

在我的代码SQL state 42x01中,围绕内部联接不断出现错误

UPDATE SALESRESP JOIN VEHICLES ON (SALESRESP.VIN = VEHICLES.VIN) 
SET SALESRESP.PrevSale = VEHICLES.SELLDATE WHERE 
(((VEHICLES.SELLDATE)<'2013-09-24'));

使用以下代码,请参阅,将日期替换为sysdate

UPDATE SALESRESP  
SET SALESRESP.PrevSale  = (SELECT VEHICLES.SELLDATE FROM VEHICLES 
WHERE SALESRESP.VIN = VEHICLES.VIN  AND
VEHICLES.SELLDATE <'2013-09-24');

好吧,让我们试着更明确一些:

更新SALESRESP 设置SALESRESP.PrevSale=VEHICLES.SELLDATE 来自车辆 加入SALESRESP.VIN=VEHICLES.VIN上的SALESREP
WHERE VEHICLES.selldate请显示您得到的错误。另外,我不认为你必须使用内部,连接应该足够了。编辑它。也试过了,但没有内在的,它仍然对连接这个词的存在大惊小怪。连接不是必须的吗?我以为我在两张不同的桌子上工作时需要一张?编辑:尝试过,但再次出现错误:错误代码30000,SQL状态42X01:语法错误:在第1行第61列遇到。确实不需要Join关键字。有几种方法可以使用where语句中的条件模拟连接。上面的代码对你有用吗?啊,好的,很高兴了解连接。但这对我还是不起作用。相同的错误代码,只是这次使用了FROM错误代码30000,SQL state 42X01:语法错误:在第1行第61列遇到。我添加了一个select in,就像您建议的那样,它可以工作,但无法获取正确的日期。很近,但还没有雪茄:\n我今天重置了连接,结果成功了!谢谢你的帮助!它告诉我错误:错误代码30000,SQL状态42X03:列名“VEHICLES.SELLDATE”位于FROM列表中的多个表中。我尝试添加更多的内容以尝试将其分离出来,但它也不喜欢这样。很抱歉,忘记更改联接引用,请参见上面的更改。它仍在进行关于vehicles.selldate是多个表中的一列的操作。但是谢谢你的帮助!
UPDATE SALESRESP  
SET SALESRESP.PrevSale  = (SELECT VEHICLES.SELLDATE FROM VEHICLES 
WHERE SALESRESP.VIN = VEHICLES.VIN  AND
VEHICLES.SELLDATE <'2013-09-24');
UPDATE S SET S.PrevSale = V.SELLDATE FROM SALESRESP S 
inner join  VEHICLES V on S.VIN = V.VIN AND V.SELLDATE < '2013-09-24'