首页 > 解决方案 > SQLite & INNER JOIN 查询

问题描述

大家好,我有这个查询,其中有 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)
)

标签: sqlsqlitejoinsql-update

解决方案


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')

推荐阅读