【发布时间】:2010-12-05 15:37:17
【问题描述】:
虽然有一些类似的问题,但我找不到完全适合我的问题的解决方案。
我有两个表 'new'、'old' 并且都有相同的架构 col1、col2、col3。
两者不一定有相同的记录,尤其是新的可能比旧的记录更多。
现在我正在寻找的是一个查询,返回 new.col3 与 old.col3 不同的所有记录(并且 new.col1 等于 old.col1)。 col3 可以有不同的值或 null。 col1 不是 PK,因此可能有多个具有相同 col1 值的记录。
我在不同组合中使用减号的所有尝试要么没有导致所有更改,要么包括具有旧 col3 值和新 col3 值的行。如上所述,我只需要/希望结果包含所有更改的 col3 值的 new.col1、new.col3。
非常感谢任何帮助;)
【问题讨论】:
-
如果
col1有重复值,你怎么知道col3被改变了还是只是不同的记录? -
每个相同的 col1 和 col3 集应该只有一条记录,但如果有更多记录,则它们是否都在结果集中返回也没关系。
-
进一步信息:所有相同的 col1 指的是同一个人并且具有不同的 col2 值(在旧表和新表中相同)。关于这个查询虽然我只对 col1 和 col3 感兴趣。
-
结果和答案(以及我在此处提供有用答案之前的尝试)使我发现给我的表格对于我需要达到的结果不太适用,所以我会谈谈给 dbadmins 设置更适合的东西。
标签: sql oracle comparison