【问题标题】:SQL Server 2014 Inner join is not workingSQL Server 2014 内部联接不起作用
【发布时间】:2018-05-07 11:22:16
【问题描述】:

我一直在尝试在 SQL SERVER 中创建内部联接。脚本没有错误,但输出不正确。 我有两张桌子。一个是 WOPart,另一个是 PartLocation.common 字段名称是 PartPK 我想获得 WOPart 的 Bin 编号(WOPart 表主键编号是 10109,即 WOPK)表以及 PartLocation 表中的批号。

我做了一个内部连接

SELECT W.PartPK,  P.Lot, W.Bin FROM WOPart W
    INNER JOIN PartLocation P
            ON W.PartPK = P.PartPK
   WHERE  W.WOPK=10109 

输出是

4   B1  c2
4   1   c2
7   A   NULL
4   B1  c2
4   1   c2
7   A   NULL

输出不正确,因为在 WOPart 表上我们有四个 PartPK

4
7
4
7  

但发布内部连接显示六个 PartPK 。请帮我修改我的内部连接

零件位置表

WOPart 表

【问题讨论】:

  • join 是正确的。您在 PartLocation 中有重复项。
  • 你能发布一些输入数据的预期结果吗?请添加输入数据和预期结果。
  • 在 PartLocation 表中我有三个 PartPK(4,4,7) 但在 WOPart 表中我有四个 PartPK (4,4,7,7) 我的要求是从 WOpart 表中显示四个 partpk 以及PartLocation 表中的批号与匹配 Partpk 的批号。

标签: sql sql-server inner-join


【解决方案1】:

也许一个独特的选择会给你你期望的结果:

SELECT DISTINCT
    W.PartPK, P.Lot, W.Bin
FROM WOPart W
INNER JOIN PartLocation P
    ON W.PartPK = P.PartPK
WHERE W.WOPK = 10109;

PartLocation 表似乎有两条记录,PartPK 的值为 4。因此,WOPart 中的 PartPK=4 条目被重复(加倍)。

【讨论】:

    猜你喜欢
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 2012-01-28
    • 2011-03-11
    • 2017-01-01
    • 2014-07-10
    • 2016-01-03
    相关资源
    最近更新 更多