当我执行以下查询时:
SELECT abc.Id FROM dbo.ABC abc
当我在另一个查询下面执行时:
SELECT top 1 def.ProductGroupId, def.TextPrompt, def.IsRequired FROM dbo.DEF def
现在我想要的结果是:
上面两张表没有任何关系。我怎样才能做到这一点?
答案 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