Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 用一些不同的列连接两个相似的表_Sql - Fatal编程技术网

Sql 用一些不同的列连接两个相似的表

Sql 用一些不同的列连接两个相似的表,sql,Sql,我们有两个表,一个显示流程的结果,另一个显示错误或其他事件。一些列可以组合,而其他列不能。每个表中都有唯一的列,因此我不能使用UNION ALL 例如,我有以下专栏(还有更多,但你知道了): 因此,每个示例表中的前三列可以合并,但其他列需要自己的列 这里的想法是用错误覆盖结果,并按日期/时间排序,以便我们可以查看是否有任何流程步骤导致错误 我尝试过不同的加入,联合,等等,但没有完全得到我想要的 有什么想法吗?这在技术上是可行的,如果这真的是你想要的输出 Select EventID, DateT

我们有两个表,一个显示流程的结果,另一个显示错误或其他事件。一些列可以组合,而其他列不能。每个表中都有唯一的列,因此我不能使用UNION ALL

例如,我有以下专栏(还有更多,但你知道了):

因此,每个示例表中的前三列可以合并,但其他列需要自己的列

这里的想法是用错误覆盖结果,并按日期/时间排序,以便我们可以查看是否有任何流程步骤导致错误

我尝试过不同的加入,联合,等等,但没有完全得到我想要的


有什么想法吗?

这在技术上是可行的,如果这真的是你想要的输出

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

为什么你不能加入他们,从这两个栏目中获取你需要的所有栏目<代码>事件。*、结果。*或您需要的名称列,当然,不要使用
*
获取所有列。有多少列?提供示例数据和所需结果。我希望具有相同数据类型的列位于同一列中,以提高排序效率,但其他列可能不同。此表实际上不是用于排序或管理数据,只是为了将两者叠加,以便我们可以看到过程中何时发生错误。有很多列,我不确定是否可以共享这些数据,因为这些数据来自工作。答案是正确的,所以我将尝试一下。谢谢,我不知道如果第二个表中没有匹配项,您可以在列名中插入“NULL”。谢谢,我不知道如果第二个表中没有匹配项,您可以在列名中插入“NULL”。我也喜欢添加表名的想法,我希望有一种方法可以做到这一点。
Select
'E' src, EventID,  DateTime, Station, NULL,   NULL,      ErrMsg
from Events
UNION ALL
Select
'R' src, ResultID, DateTime, Station, MatNum, SerialNum, NULL
from Results