Sql 连接两个列数不同的表

Sql 连接两个列数不同的表,sql,sql-server-2008,join,ssis,business-intelligence,Sql,Sql Server 2008,Join,Ssis,Business Intelligence,我在ssis中有这样一个场景——我有两个不同的输入,其中一个来自查找nomatch输出。另一个输入实际上是使用sql查询从oledb源中的单行单列结果获取的派生列。问题是,我需要将这两个输入连接起来,使其成为单个数据集,以进一步将数据推送到crm目的地(Cozyroc) 我知道union all无法完成这项工作,因为它可以对来自不同数据集的行进行union 此外,不能使用merge和merge join,因为为了连接这两个数据集,需要提供一个公共id或密钥,而我没有这样的东西 例如,我的第一个数

我在ssis中有这样一个场景——我有两个不同的输入,其中一个来自查找nomatch输出。另一个输入实际上是使用sql查询从oledb源中的单行单列结果获取的派生列。问题是,我需要将这两个输入连接起来,使其成为单个数据集,以进一步将数据推送到crm目的地(Cozyroc)

我知道union all无法完成这项工作,因为它可以对来自不同数据集的行进行union

此外,不能使用merge和merge join,因为为了连接这两个数据集,需要提供一个公共id或密钥,而我没有这样的东西

例如,我的第一个数据集如下所示:

usinessid          userid      name
---------          ------      ----
ret678             435         john
dfgt67             213         sam
我的第二个数据集如下所示:

systemid
------------------------
6666-777-kjtyr-213t-ytui
它是使用oledb source-sql命令通过单列单行查询提取的

有没有一种方法可以将这两个数据集组合起来,以便最终结果如下:

businessid         userid           name          systemid
----------         ------           ----          ------------------------
ret678             435              john          6666-777-kjtyr-213t-ytui 
dfgt67             213              sam           6666-777-kjtyr-213t-ytui
我希望在不使用变量或派生列的情况下执行此操作,并对systemid值进行硬编码

请原谅我的编辑


关于这个问题的任何进一步的输入都将非常有用。

要以您所展示的方式组合这两个数据集,您可以使用一个简单的交叉连接:

SELECT
  t1.businessid,
  t1.userid,
  t1.name,
  t2.systemid
FROM
  table1 t1
CROSS JOIN
  table2 t2
;

你能举个例子帮助你进行口头描述吗?这两个输入看起来像什么?您希望从中得到什么输出?我认为脚本组件(类型转换)将适合这份工作谢谢您的回答。是的,这似乎是解决问题的方法。但是,SSI没有直接使用交叉连接的功能。在SSIS中有什么方法可以做到这一点。生成两个表的叉积的另一种方法是执行
SELECT。。。来自表1 t1、表2 t2
。SSIS支持这样的东西吗?好的。我得到了它。对于在SSI中使用交叉联接,没有直接的方法。间接地,您可以为每个数据集创建一个派生列,如“join_key”,并为其赋值1。然后对两个派生列输出使用排序转换,并选择“join_key”字段进行排序。最后,对required字段进行完全外部联接可以产生交叉联接结果..哦,我明白了。感谢您分享此解决方案,我想我可能需要在将来记住它。顺便问一下,你认为它必须是一个完整的外部连接吗?SSI是否允许在这种情况下进行内部连接?我确实认为它也应该起作用,而且它可能会变得更有效,尽管在宣布它为真之前还需要进行测试。此外,为了其他访问者的利益,我确实认为,如果您将您的解决方案发布为自己的答案(并在允许的情况下接受它),这将是一个更好的主意。毕竟,尽管我的解决方案似乎合乎逻辑,但它在SSIS中并不真正起作用,不是吗?我的意思是,谢谢你接受我的解决方案,只是它并没有真正解决问题,而你的解决方案确实解决了问题。