从多个表创建一个VIEW,每个表具有不同的列数

use*_*175 0 sql sql-server asp.net sql-server-2008

我想将多个表合并为一个VIEW.
我的理解是,如果列数不同,我们就无法使用UNION.
我该如何解决这个问题?

我有以下三个TABLES:

1. 表名 - 相册

在此输入图像描述

2. 表名 - AlbumPictures

在此输入图像描述

3. 表名称 - 故事

在此输入图像描述

我希望有3个表格如下:(我可以使用INNER JOINS做这个部分 - 如果我错了,请帮我解决)

对于故事: StoryID,AlbumID,StoryTitle,AlbumCover,投票

对于专辑: AlbumID,AlbumName,AlbumCover,Votes

对于图片: AlbumPictureID,投票

我想将从上面的查询中检索到的所有行合并为一个VIEW并将它们混合.由于上面每个结果集中的列数不同,我可以将它们组合成一个VIEW吗?

Cha*_*ana 7

因此,在您的UNION sql中,要么从sql中删除多余的列,要么将具有常量默认值的额外列添加到具有较少列的表的sql中.

根据您的示例输出,添加额外的常量值可能如下所示......

Select StoryID id, AlbumID, 
    StoryTitle name, AlbumCover, Votes
From Stories
 UNION
Select AlbumID id, AlbumID, 
     AlbumName name, AlbumCover, Votes
From Albums
   UNION
Select AlbumPictureID id, null AlbumId, 
     null AlbumCover, Votes
From pictures
Order By id, Votes, name
Run Code Online (Sandbox Code Playgroud)

但这让我想问为什么???

编辑:要排序,只需使用输出列名称添加订单,如上所示....