Sql server 创建一个包含多个不包含联接的表的视图

Sql server 创建一个包含多个不包含联接的表的视图,sql-server,view,Sql Server,View,我想创建一个包含多个表但不包含联接的视图: SELECT * Table1, Table2, Table 3 但服务器正在将此更改为: Select * Table1 CROSSJOIN Table2 CROSSJOIN Table3 这不可能吗 我有四张桌子。。。产品、形式、规格和第四个,其中其他三个的主键构成产品形式规格。我想显示产品规格中没有的所有规格,但我需要能够添加where参数来限制形式和产品。我还需要能够选择FormNumber和ProductID。我有 SELECT DIST

我想创建一个包含多个表但不包含联接的视图:

SELECT *
Table1, Table2, Table 3
但服务器正在将此更改为:

Select *
Table1 CROSSJOIN Table2 CROSSJOIN Table3
这不可能吗

我有四张桌子。。。产品、形式、规格和第四个,其中其他三个的主键构成产品形式规格。我想显示产品规格中没有的所有规格,但我需要能够添加where参数来限制形式和产品。我还需要能够选择FormNumber和ProductID。我有

SELECT DISTINCT TOP 1000
      s.Commerce_SpecificationID
         ,s.Commerce_Spec_Name
         ,p.ProductID
         ,f.FormNumber
  FROM Commerce.dbo.Commerce_Specifications s
       , Commerce.dbo.Products p
       , Commerce.dbo.Commerce_Forms f
  WHERE s.Commerce_SpecificationID NOT IN 
                     (SELECT s2.Commerce_SpecificationID
                     FROM Commerce.dbo.Commerce_Specifications s2
                     INNER JOIN [Commerce].[dbo].[Commerce_Product_Form_Specification] pfs on pfs.SpecificationID = s2.Commerce_SpecificationID
                     INNER JOIN Commerce.dbo.Products p2 on pfs.ProductID = p2.ProductID
                     INNER JOIN Commerce.dbo.Commerce_Forms f2 on pfs.FormNumber = f2.FormNumber
                     WHERE p2.ProductID = p.ProductID 
                           AND f2.FormNumber = f.FormNumber)
这可以作为查询使用,但当我将其保存为视图时,服务器会对其进行更改

编辑:我不知道我之前做错了什么,但这个很好用。谢谢你的帮助。我确实了解到,交叉连接是一种更古老的连接方法。。。这是一个没有输入join的join

从技术上讲,您仍然可以这样做,但是如果所有表都具有相同的模式,那么这是最简单的

select column1, column2, columnFromTable1Only
from table1
union all select column1, column2, null as columnFromTable1Only
from table2

在上面的示例中,table1和table2具有类似的column1和column2列,但是只有table1具有ColumnFromTable1。在这个联合实例中,table2需要在该列的位置有一些内容,所以使用null。

这些表有什么关系?另外,这些表有什么样的结构,您希望的输出是什么?如果表结构相同或相似,则可以使用联合。否则,你必须使用连接。实际上,表1,表2是一个交叉连接。你想实现什么?据我所见,JOIN是这项工作的合适工具。我编辑了我的原始帖子来扩展我的工作。哦,天哪。我一定是睡眠不足。这个很好用。。我不知道我之前做错了什么。对于交叉连接,哪个版本的标准被弃用了?@ShannonSeverance/耸耸肩我只是在转述我听到的东西,如果这是错误的信息。不过,通过快速的谷歌搜索:我同意避免使用SQL-89样式的连接和使用SQL-92样式的连接是一件好事。你不会从那里得到任何争论。这里有一篇关于旧式连接的老帖子,内容是关于哪些不推荐,哪些不推荐: