比较sql中的2个表

时间:2013-01-01 00:21:54

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

我有两张桌子,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

,则显示最后一列

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

尝试使用案例

选择tablea1.address = tablea2.address然后'*'的情况        else'#'以tablea1上的tablea1内连接tablea2的eq结束。= tablea2。

希望它可以帮到你。