![](/img/trans.png)
[英]Join two columns from two different tables where both the columns have partially similar data
[英]Join two similar tables with some different columns
我们有两个表,一个表显示流程的结果,另一个表显示错误或其他事件。 有些列可以合并,而另一些则不能。 每个表中都有唯一的列,所以我不能使用UNION ALL。
例如,我有以下几列(还有更多专栏,但您明白了):
EventID | DateTime | Station | ErrMsg
ResultID | DateTime | Station | MatNum | SerialNum
因此,每个示例表中的前三列可以合并,但其他列则需要自己的列。
这里的想法是按日期/时间在错误和顺序上覆盖结果,以便我们查看是否有任何导致错误的处理步骤。
我尝试了不同的联接,联合等,但并没有得到我想要的。
有什么想法吗?
如果这确实是您希望获得输出的方式,则从技术上讲这是可行的...
Select
EventID, DateTime, Station, ErrMsg, NULL
from Events
UNION ALL
Select
ResultID, DateTime, Station, MatNum, SerialNum
from Results
由于前三列具有兼容的数据类型,而其他三列则不具有,因此您需要为每个不兼容的列单独分隔列。 我还将添加一个鉴别符列,以便您可以立即知道该行来自哪个数据源:
Select
'E' src, EventID, DateTime, Station, NULL, NULL, ErrMsg
from Events
UNION ALL
Select
'R' src, ResultID, DateTime, Station, MatNum, SerialNum, NULL
from Results
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.