将INNER JOIN添加到查询中不应该增加返回的行数吗?

Kur*_*urt 11 sql t-sql sql-server inner-join

我有一个像下面这样的查询返回我期望的正确行数.(它必须匹配类似的查询,该查询返回相同的数据集,但具有与其他相关表不同的关联信息.

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
Run Code Online (Sandbox Code Playgroud)

但是,只要我添加其他内部联接,我实际上会获得更多行.我认为内连接只在连接的两边找到信息时返回行,所以我希望得到相同或更少的行.但我的两倍左右.

例如:

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
Run Code Online (Sandbox Code Playgroud)

这有意义吗?如何添加两个内部联接会导致返回更多行?

更重要的是我的实际问题,我如何调整第二个查询,以便它返回与第一个查询相同的行,但使用连接表中的额外列?

ten*_*our 16

如果每个LK有多个VK,那么它将增加行数#.我不明白你的架构足以修复它.