He cambiado los nombres de las tablas, pero encontré esta declaración FROM en un SP que estoy optimizando y me pregunto cómo podría surgir esto, por qué harías algo así y por qué funciona. .¿Alguien puede entender por qué hacer esto o cómo funciona correctamente con este bit de SQL?
FROM tblPezFill pf
RIGHT OUTER JOIN tblWolveLocation stfl
RIGHT OUTER JOIN tblDuckPez pp
RIGHT OUTER JOIN tblChaos o
INNER JOIN tblBillLeg bi
INNER JOIN @Facty selFac
ON bi.WolveId = selFac.WolveId
ON o.ChaosID = bi.ChaosId
LEFT OUTER JOIN vwDonald stPres
RIGHT OUTER JOIN tblStockChaos so
ON stPres.DonaldId = so.DonaldId
ON o.StockChaosID = so.StockChaosID
ON pp.PezID = o.PezID
ON stfl.WolveLocationId = so.WolveLocationId
ON pf.PezFillID = o.PezFillID
LEFT OUTER JOIN tblCheeseburger p ON bi.CheeseburgerId = p.CheeseburgerId
LEFT OUTER JOIN tblChaosCheeseburgerShipped ops ON o.ChaosID = ops.ChaosID
LEFT OUTER JOIN vwDonald pres ON pp.DonaldId = pres.DonaldId
LEFT OUTER JOIN tblDuck ON pp.DuckID = tblDuck.DuckId
LEFT OUTER JOIN vwDuck ON pp.DuckID = vwDuck.DuckId
LEFT OUTER JOIN tblWolveLocation fl ON pf.WolveLocationId = fl.WolveLocationId
He limpiado hasta
FROM tblBillLeg bi
INNER JOIN @Facty selFac ON bi.WolveId = selFac.WolveId
LEFT OUTER JOIN tblCheeseburger p ON bi.CheeseburgerId = p.CheeseburgerId
LEFT OUTER JOIN tblChaos o ON o.ChaosID = bi.ChaosId
LEFT OUTER JOIN tblDuckPez pp ON pp.PezID = o.PezID
LEFT OUTER JOIN tblPezFill pf ON pf.PezFillID = o.PezFillID
LEFT OUTER JOIN tblChaosCheeseburgerShipped ops ON o.ChaosID = ops.ChaosID
LEFT OUTER JOIN tblStockChaos so ON o.StockChaosID = so.StockChaosID
LEFT OUTER JOIN tblWolveLocation stfl ON stfl.WolveLocationId = so.WolveLocationId
LEFT OUTER JOIN vwDonald stPres ON stPres.DonaldId = so.DonaldId
LEFT OUTER JOIN vwDonald pres ON pp.DonaldId = pres.DonaldId
LEFT OUTER JOIN tblDuck ON pp.DuckID = tblDuck.DuckId
LEFT OUTER JOIN vwDuck ON pp.DuckID = vwDuck.DuckId
LEFT OUTER JOIN tblWolveLocation fl ON pf.WolveLocationId = fl.WolveLocationId
que creo que debe ser equivalente, necesito algunos datos de prueba. Simplemente no entiendo cómo la primera versión realmente funcionó.
+1: Para código antiguo fugly. Desearía que SQL Server hiciera una mejor verificación de sintaxis para la cláusula 'ON '. ¿Esto es en 2005, 2008 o 2008 R2? –
+1 Esta es la ballena blanca de consultas – 8kb
Originalmente en 2000 y estoy haciendo optimizaciones para 2005 – Cericme