我的任务是在与SQLite兼容的SQL Server存储过程中进行查询。
以下查询包含RIGHT JOIN
,它们与SQLite不兼容:
SELECT ...
FROM Operatori
INNER JOIN Preventivi
ON Operatori.Pk = Preventivi.FkOperatori
RIGHT JOIN Operatori AS Operatori_1
INNER JOIN Soluzioni
ON Operatori_1.Pk = Soluzioni.FkOperatore
INNER JOIN Reparti
ON Operatori_1.FkReparto = Reparti.Pk
RIGHT JOIN Progetti
INNER JOIN Anagrafica
ON Progetti.FkClienti = Anagrafica.Pk
AND Soluzioni.FkProgetti = Progetti.Pk
AND Preventivi.FkSoluzioni = Soluzioni.Pk
我知道通常情况下,切换表是有效的:
离。
FROM Operatori
RIGHT JOIN Progetti
成了:
FROM Progetti
LEFT JOIN Reparti
但如果我在同一个查询中有其他JOIN
,我怎么能进行转换?
答案 0 :(得分:0)
与内部联接相比,外部联接返回表行的其他结果行而不匹配。 但是,这仅适用于与该连接的ON子句完成的匹配。 所以这个查询实际上没有任何有意义的外连接,因为
因此,在此查询中,您可以简单地将RIGHT替换为INNER(在两个数据库中),并保证结果相同。