-2

大家好,我有这个查询,其中有 3 个表加入。在 Access 中它可以工作,但在 SQLite 中它给了我一个错误,我怎样才能“适应”SQL 命令?谢谢

UPDATE (
    CategoriaTB 
    INNER JOIN MagazzinoTB ON CategoriaTB.IDCategoria = 
MagazzinoTB.IDCategoria
) INNER JOIN PersoneTB ON MagazzinoTB.IDPersone = 
PersoneTB.IDPersone 
SET MagazzinoTB.DataReso = "aaa"
WHERE ((
    (PersoneTB.CodicePer)="F") 
    AND ((MagazzinoTB.Stato)=0) 
    AND ((MagazzinoTB.DataVendita) Is Null)
)
4

2 回答 2

1

SQLite 不支持UPDATE语句中的连接,但您可以使用EXISTS

UPDATE MagazzinoTB 
SET DataReso = 'aaa'
WHERE Stato = 0 AND DataVendita IS NULL
  AND EXISTS (SELECT 1 FROM CategoriaTB c WHERE c.IDCategoria = MagazzinoTB.IDCategoria)
  AND EXISTS (SELECT 1 FROM PersoneTB p WHERE p.IDPersone = MagazzinoTB.IDPersone AND p.CodicePer = 'F')
于 2020-05-31T18:43:54.210 回答
0

请使用以下查询,

UPDATE MagazzinoTB set DataReso = 'aaa' WHERE (IDCategoria, IDPersone)
IN (SELECT CategoriaTB.IDCategoria, PersoneTB.IDPersone FROM CategoriaTB 
INNER JOIN MagazzinoTB ON 
CategoriaTB.IDCategoria = MagazzinoTB.IDCategoria
INNER JOIN PersoneTB 
ON MagazzinoTB.IDPersone = PersoneTB.IDPersone
WHERE (((PersoneTB.CodicePer)="F") AND ((MagazzinoTB.Stato)=0) AND 
((MagazzinoTB.DataVendita) Is Null)));
于 2020-05-31T18:34:24.080 回答