根据公共密钥查找两个表之间的差异(Microsoft SQL Server)

用户名

我有两个共享一个公用键的表和一些不同的列。公用密钥为CampaignID其中一张表的张数CampaignID比另一张表略多,我想找出这两个表之间的区别。当前,我先使用LEFT OUTER JOINCTE合并这两个表,然后通过检查在较早步骤中派生NULLCTE结果集中的来计算CampaignID列之间的差异例如,

WITH CTE_Results
     AS (SELECT t1.CampaignID AS cd_CampaignID,
                t2.CampaignID AS cod_CampaignID,
                t1.NAME,
                t2.Vendor
         FROM   CampaignDetails AS t1
                LEFT OUTER JOIN CampaignOnlineDetails AS t2
                             ON t1.CampaignID = t2.CampaignID)

-- Now that I have CTE result, I'll use another SELECT to find the difference
SELECT cd_CampaignID, cod_CampaignID
FROM CTE_Results
WHERE cod_CampaignID is NULL

但这对我来说似乎效率低下。有没有更有效/更快的方法来比较Microsoft SQL Server中两个表之间的特定列中的差异?谢谢您的回答!

注意:我是Microsoft SQL Server和SQL的新手。

麦基文

如果一个表比另一个表多,那么结果如何:

SELECT C1.* FROM CAMPAIGN_WITH_MORE_DATA AS C1
WHERE NOT EXISTS(SELECT * FROM CAMPAIGN_WITH_LESS_DATA AS C2
                                WHERE C2.CAMPAIGN_ID = C1.CAMPAIGN_ID)

如果任何一个可能没有一个广告系列,则UNION此操作:

SELECT C1.Name AS [Col1],
  C1.CAMPAIGN_ID,
  'More Campaigns' AS [Source]
FROM CAMPAIGN_WITH_MORE_DATA AS C1
WHERE NOT EXISTS(SELECT * FROM CAMPAIGN_WITH_LESS_DATA AS C2
                 WHERE C2.CAMPAIGN_ID = C1.CAMPAIGN_ID)
UNION ALL
SELECT C2.Vendor AS [Col1],
  C2.CAMPAIGN_ID,
  'Less Campaigns' AS [Source]
FROM CAMPAIGN_WITH_LESS_DATA AS C2
WHERE NOT EXISTS(SELECT * FROM CAMPAIGN_WITH_MORE_DATA AS C1
                 WHERE C1.CAMPAIGN_ID = C2.CAMPAIGN_ID)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据公共密钥查找两个表之间的差异(Microsoft SQL Server)

来自分类Dev

SQL Server中两个单独的表中的两列之间的差异

来自分类Dev

SQL Server中两个日期之间的月份差异

来自分类Dev

在SQL中查找两个表之间的重复差异

来自分类Dev

SQL Server:在不同表中的两个参数之间查找重复项

来自分类Dev

SQL Server查找两个日期之间的记录

来自分类Dev

SQL Server:查找两个日期之间的记录

来自分类Dev

如何根据条件合并两个 SQL Server 表?

来自分类Dev

两个 SQL Server 表之间的多个 FOREIGN KEY

来自分类Dev

SQL Server 中是否有一种方法可以显示具有相同布局并共享一些公共数据的两个表之间的字段差异

来自分类Dev

合并两个表-SQL Server

来自分类Dev

获取 SQL Server 中不包括星期五的两个日期之间的日期差异

来自分类Dev

SQL查询-查找同一表中两个值之间的差异

来自分类Dev

SQL:在具有非唯一特征ID的两个表之间查找差异?

来自分类Dev

查找两个日期之间的中位数SQL Server 2008

来自分类Dev

在 SQL Server 中找到最低的两个最小值并找到两者之间的差异?

来自分类Dev

根据不带主键的日期联接两个表(SQL Server 2014)

来自分类Dev

在SQL Server中查找包含两个特定列的表

来自分类Dev

在SQL Server中查找两个不同表的匹配记录

来自分类Dev

在SQL Server中查找包含两个特定列的表

来自分类Dev

如何从SQL Server中的两个表中查找MAX值?

来自分类Dev

跨Microsoft Server Management Studio中两个不同表的SQL更新

来自分类Dev

SQL Server:列出表之间的差异

来自分类Dev

获取两个表之间的丢失记录数(SQL Server 2012)

来自分类Dev

从SQL Server中的多个表获取两个日期之间的记录

来自分类Dev

如何在SQL Server 2012中找到不同行的两个日期单元格之间的差异?

来自分类Dev

SQL Server 2008中具有公共日期字段的两个表如何从两个表中按日期进行选择

来自分类Dev

在SQL Server中的两个日期条件之间

来自分类Dev

计算两个日期之间的SUM SQL SERVER

Related 相关文章

  1. 1

    根据公共密钥查找两个表之间的差异(Microsoft SQL Server)

  2. 2

    SQL Server中两个单独的表中的两列之间的差异

  3. 3

    SQL Server中两个日期之间的月份差异

  4. 4

    在SQL中查找两个表之间的重复差异

  5. 5

    SQL Server:在不同表中的两个参数之间查找重复项

  6. 6

    SQL Server查找两个日期之间的记录

  7. 7

    SQL Server:查找两个日期之间的记录

  8. 8

    如何根据条件合并两个 SQL Server 表?

  9. 9

    两个 SQL Server 表之间的多个 FOREIGN KEY

  10. 10

    SQL Server 中是否有一种方法可以显示具有相同布局并共享一些公共数据的两个表之间的字段差异

  11. 11

    合并两个表-SQL Server

  12. 12

    获取 SQL Server 中不包括星期五的两个日期之间的日期差异

  13. 13

    SQL查询-查找同一表中两个值之间的差异

  14. 14

    SQL:在具有非唯一特征ID的两个表之间查找差异?

  15. 15

    查找两个日期之间的中位数SQL Server 2008

  16. 16

    在 SQL Server 中找到最低的两个最小值并找到两者之间的差异?

  17. 17

    根据不带主键的日期联接两个表(SQL Server 2014)

  18. 18

    在SQL Server中查找包含两个特定列的表

  19. 19

    在SQL Server中查找两个不同表的匹配记录

  20. 20

    在SQL Server中查找包含两个特定列的表

  21. 21

    如何从SQL Server中的两个表中查找MAX值?

  22. 22

    跨Microsoft Server Management Studio中两个不同表的SQL更新

  23. 23

    SQL Server:列出表之间的差异

  24. 24

    获取两个表之间的丢失记录数(SQL Server 2012)

  25. 25

    从SQL Server中的多个表获取两个日期之间的记录

  26. 26

    如何在SQL Server 2012中找到不同行的两个日期单元格之间的差异?

  27. 27

    SQL Server 2008中具有公共日期字段的两个表如何从两个表中按日期进行选择

  28. 28

    在SQL Server中的两个日期条件之间

  29. 29

    计算两个日期之间的SUM SQL SERVER

热门标签

归档