sql – 向查询添加INNER JOIN不应该增加返回的行数?
发布时间:2020-12-12 08:51:27 所属栏目:MsSql教程 来源:网络整理
导读:我有一个如下所示的查询返回正确的行数. (它必须匹配类似的查询,返回相同的数据集,但与其他相关表不同的关联信息. SELECT *FROM LKINNER JOIN STC ON LK.V = STC.VILEFT OUTER JOIN BC ON LK.BC = BC.IDLEFT OUTER JOIN K AS LT ON ISNULL(BC.ZA,LK.VH) = LT.
我有一个如下所示的查询返回正确的行数. (它必须匹配类似的查询,返回相同的数据集,但与其他相关表不同的关联信息.
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 但是,一旦添加其他内部连接,我实际上可以获得更多的行.我认为一个内部连接只会在连接的两端都发现信息时返回行,所以我希望得到相同或更少的行.但是我得到了两倍. 例如: 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 这有道理吗如何添加两个内部连接会导致更多行被返回? 更重要的是我的实际问题,我如何调整第二个查询,以便它返回与第一个查询相同的行,但连接的表中的额外的列? 解决方法如果每个LK有多个VK,那么它将增加行数.我不明白你的架构足以修复它.(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |