发布新日志

  • 比较两个数据库中相同的表的内容-总结

    2007-05-18 13:07:58

    intersect运算
    返回查询结果中相同的部分
    exp:各个部门中有哪些相同的工种
    selectjob
    fromaccount
    intersect
    selectjob
    fromresearch
    intersect
    selectjob
    fromsales;

    minus运算
    返回在第一个查询结果中与第二个查询结果不相同的那部分行记录。
    有哪些工种在财会部中有,而在销售部中没有?
    exp:selectjobfromaccount
    minus
    selectjobfromsales;

    select *
    from cis.pop_populate a
    where a.id not in (select id from cpis.pop_populate)

    如果表结构一模一样,你可以这样:

    select * from tab1 minus select * from tab2;
    得到第一张表有,第二张表没有的记录。

    select * from tab2 minus select * from tab1;
    得到第二张表有,第一张表没有的记录。

    那是因为你两个表的表结构不一样。
    我开始说了,“如果表结构一模一样”

    如果表结构不一样,那么这样做:
    先把一样的字段挑出来,这些字段是你需要做比较的。没有挑出的字段不参与比较。
    然后:
    select col1, col2, ..., colN from tab1 minus select col1, col2, ..., colN from tab2;
    select col1, col2, ..., colN from tab2 minus select col1, col2, ..., colN from tab1;

我的栏目

我的存档

数据统计

  • 访问量: 2811
  • 日志数: 1
  • 建立时间: 2007-05-14
  • 更新时间: 2007-05-18

RSS订阅

Open Toolbar