【问题标题】:Compare 2 tables in sql比较sql中的2个表
【发布时间】:2013-01-01 00:21:53
【问题描述】:

我有两张桌子,A1 和 A2。我想比较这两个表。我尝试了内部连接,但它没有给出所需的结果。

这些是这些表中的数据,

表 A1

No. Address 
1  abc
1  abc
1  def
1  def

表 A2

No. Address
1    def
1    abc
1    abc
1    def

这两个表只能使用No. 列连接。因此,如果我使用 INNER JOIN 它会给出 16 行。我不希望这样,我只想显示 4 行。这应该是输出:

No.   Address   eq
1     abc      #
1     abc      *
1     abc      #
1     abc      #

如果 A1 中的地址等于 A2,则显示最后一列

【问题讨论】:

  • 每张表的主键是什么?显然不是No.
  • 但两个表的最后一行也相等?

标签: sql sql-server-2008 sql-server-2005 sql-server-2008-r2


【解决方案1】:

搜索A1表中存在但A2表中不存在的记录:

SELECT * FROM A1 WHERE NOT EXISTS (SELECT * FROM A2 WHERE A2.Id = A1.Id)

【讨论】:

    【解决方案2】:

    尝试用例

    当 tablea1.address=tablea2.address 然后选择 case '*' else '#' end as eq from tablea1 inner join tablea2 on tablea1.=tablea2.

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-17
      • 1970-01-01
      • 2021-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多