当我只想要一行时,SQL JOIN 返回多行

新手上路,请多包涵

我的大脑一天很慢…

我加入的表:

政策办公室:

  PolicyNumber    OfficeCode
      1             A
      2             B
      3             C
      4             D
      5             A

办公信息:

  OfficeCode      AgentCode      OfficeName
      A             123             Acme
      A             456             Acme
      A             789             Acme
      B             111             Ace
      B             222             Ace
      B             333             Ace
     ...            ...             ....

我想执行搜索以返回与办公室名称相关的所有政策。例如,如果我搜索“Acme”,我应该得到两个策略:1 和 5。

我当前的查询如下所示:

 SELECT
   *
FROM
   Policy_Office P
   INNER JOIN Office_Info O ON P.OfficeCode = O.OfficeCode
WHERE
   O.OfficeName = 'Acme'

但是这个查询返回多行,我知道这是因为第二个表中有多个匹配项。

如何编写查询以仅返回两行?

原文由 Shai Cohen 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
1 个回答
SELECT  DISTINCT a.PolicyNumber
FROM    Policy_Office a
        INNER JOIN Office_Info b
            ON a.OfficeCode = b.OfficeCode
WHERE   b.officeName = 'Acme'

要进一步了解有关联接的更多信息,请访问以下链接:

原文由 John Woo 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
Stack Overflow 翻译
子站问答
访问
宣传栏