Tengo una consulta como la siguiente que devuelve el número correcto de filas que esperaría. (Se tiene que coincidir con una consulta similar que devuelve los mismos conjuntos de datos pero con diferente información asociada de otras tablas relacionadas.Agregar un INNER JOIN a una consulta no debería aumentar el número de filas devuelto ¿no?
SELECT *
FROM LK
INNER JOIN STC ON LK.V = STC.VI
LEFT OUTER JOIN BC ON LK.BC = BC.ID
LEFT OUTER JOIN K AS LT ON ISNULL(BC.ZA, LK.VH) = LT.KNN
WHERE
LT.KI IS NOT NULL AND LT.KS = 0
OR
LT.KI IS NULL
ORDER BY
LK.Z
Pero tan pronto como añado otra combinaciones internas en realidad me da más filas de atrás. Yo pensaba que una combinación interna sólo se devuelve filas cuando la información se encuentra en ambos lados de la combinación, así que espera a obtener ya sea el mismo o menos filas de atrás pero me da alrededor de dos veces más
Por ejemplo:..
SELECT *
FROM LK
INNER JOIN STC ON LK.V = STC.VI
INNER JOIN VK ON LK.V = VK.ID
INNER JOIN K AS A ON VK.AIN = A.KNN
LEFT OUTER JOIN BC ON LK.BC = BC.ID
LEFT OUTER JOIN K AS LT ON ISNULL(BC.ZA, LK.VH) = LT.KNN
WHERE
LT.KI IS NOT NULL AND LT.KS = 0
OR
LT.KI IS NULL
ORDER BY
LK.Z
¿Tiene sentido esto? ¿Cómo se pueden agregar dos combinaciones internas más r Esult en más filas que se devuelven?
Y más al punto de mi problema real, ¿cómo puedo ajustar la segunda consulta para que devuelva las mismas filas que la primera consulta pero con las columnas adicionales de las tablas unidas?
+1. Un poco corto quizás pero exacto. –
Por supuesto ... Eso tiene sentido ... Supongo que fue uno de esos bosques y cosas de árboles. – Kurt
¿Qué significa VK y LK, por favor? Solo sé la clave externa y la clave principal. – systemovich