临时表使用UNION从表中获取值

时间:2015-04-03 02:00:13

标签: mysql sql-server

我有一个表名书籍,声明,章节,章节,帖子。 Post表有一个列名 DisplayMessage ,我需要获得一个独特的记录。

2 ways it can be mapped in UI 

First way is 
Book , Statement, Chapter, Section, Post.
OR 
Book , Statement,Chapter, Post. (Post has the Column "Message")

正如您所看到的,如果用户希望将 TABLE部分包含在该章的UI中,则取决于用户。

这是我写的PROC

@Temptable TABLE 
(
PK_Chapter   INT
ChapterName  NVARCHAR
SectionName  NVARCHAR
PostName     NVARCHAR
Message      NVARCHAR(526)
)
Insert into @Temptable
Select Distinct
PK_Chapter
ChapterName
SectionName
PostName 
Message 
From Book b
INNER JOIN Chapter c ON b.PK_Book    = c.FK_Book    --Chapter
INNER JOIN Section s ON c.PK_Chapter = s.FK_Chapter --Section
INNER JOIN Post p    ON s.PK_Section = p.FK_Section --Post
UNION 
Select Distinct
PK_Chapter
ChapterName
SectionName
PostName 
Message 
From Book b                                         -- Book
INNER JOIN Chapter c ON b.PK_Book    = c.FK_Book    --Chapter
INNER JOIN Post p    ON c.PK_Chapter=  p.FK_Chapter --Post
Select * from @Temptable

它正在工作,但我想有一个更好的思考方式和使用temptable编写一个proc。 我需要从A到D得到D具有价值。简单来说,我可以使用A,B,C,D.VALUE(需要DISTINCT) 但我可以选择不使用C. 我也可以去A,B,D.VALUE 谢谢你看看。

0 个答案:

没有答案
相关问题