当sql中没有关系时,在sql中连接多个表

时间:2017-04-05 15:16:19

标签: sql join

当我执行以下查询时:

SELECT abc.Id FROM dbo.ABC abc

enter image description here

当我在另一个查询下面执行时:

SELECT top 1 def.ProductGroupId, def.TextPrompt, def.IsRequired FROM dbo.DEF def

enter image description here

现在我想要的结果是:

enter image description here

上面两张表没有任何关系。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

我会使用明确的cross join

SELECT abc.id, def.*
FROM (SELECT TOP 1 def.ProductGroupId, def.TextPrompt, def.IsRequired
      FROM dbo.DEF def
     ) def CROSS JOIN
     dbo.ABC;

注意:一般情况下,如果没有TOP,则不应使用ORDER BY。您将从def获取一个不确定的行,该行可能会在每次运行查询时更改。

答案 1 :(得分:1)

您可以使用自我加入来实现此目标:

SELECT abc.id, def.*
FROM (SELECT TOP 1 def.ProductGroupId, def.TextPrompt, def.IsRequired
      FROM dbo.DEF def
     ) def , dbo.ABC abc