这是UNION ALL存储过程中的正确方法吗?
ALTER PROCEDURE [GetHomePageObjectPageWise]
@PageIndex INT = 1
,@PageSize INT = 10
,@PageCount INT OUTPUT
,@whereStoryID varchar(2000)
,@whereAlbumID varchar(2000)
,@wherePictureID varchar(2000)
AS
BEGIN
SET NOCOUNT ON;
SELECT StoryID
, AlbumID
, StoryTitle
, NULL AS AlbumName
, (SELECT URL FROM AlbumPictures WHERE (AlbumID = dbo.Stories.AlbumID) AND (AlbumCover = 'True')) AS AlbumCover
, Votes
, NULL AS PictureId
, 'stories' AS tableName
, NEWID() AS Sort
INTO #Results1
FROM Stories WHERE StoryID IN (SELECT StringVal FROM funcListToTableInt(@whereStoryID))
SELECT …Run Code Online (Sandbox Code Playgroud) 这是我存储的Proc的片段
SELECT NULL AS StoryID
, AlbumID
, CAST(NULL as varchar) AS StoryTitle
, AlbumName
, (SELECT URL FROM AlbumPictures AS AlbumPictures_3 WHERE (AlbumID = Albums.AlbumID) AND (AlbumCover = 'True')) AS AlbumCover
, Votes
, CAST(NULL as Int) AS PictureId
, 'albums' AS tableName
, (SELECT NestedAlbums.AlbumID FROM NestedAlbums WHERE (AlbumID = Albums.AlbumID)) AS Flag
INTO #Results2
FROM Albums WHERE AlbumID IN (SELECT StringVal FROM funcListToTableInt(@whereAlbumID))
Run Code Online (Sandbox Code Playgroud)
我在上面的查询中使用了嵌套选择.我很好奇,想知道是否Nested Selects有优于LEFT/Right JOINS或者我应该使用JOINS?
表相册:

表NestedAlbums:

我想将多个表合并为一个VIEW.
我的理解是,如果列数不同,我们就无法使用UNION.
我该如何解决这个问题?
我有以下三个TABLES:
1. 表名 - 相册

2. 表名 - AlbumPictures

3. 表名称 - 故事

我希望有3个表格如下:(我可以使用INNER JOINS做这个部分 - 如果我错了,请帮我解决)
对于故事: StoryID,AlbumID,StoryTitle,AlbumCover,投票
对于专辑: AlbumID,AlbumName,AlbumCover,Votes
对于图片: AlbumPictureID,投票
我想将从上面的查询中检索到的所有行合并为一个VIEW并将它们混合.由于上面每个结果集中的列数不同,我可以将它们组合成一个VIEW吗?