繁体   English   中英

存储过程的SQL查询

[英]Sql query for stored procedure

我有五个表“ArtBook,Eng,comm,Law,mgt”,每个表都有相同的列,我想通过它的id搜索特定书籍的所有信息,例如 -

select * from ArtBook,Eng,Comm,Law,mgt where @BookId=ArtBooks.BookId
or @BookId=CommBooks.BookId
or @BookId=Eng.BookId
or @BookId=Law.BookId
or @BookId=mgt.BookId

如果所有表都存储了不同类别的书籍,则将它们组合回一个表格并添加“类别”列。 由于您所演示的原因,将这样的分类分类到单独的表中并不是一个好主意。

select * 
from ArtBook
where BookId = @BookId
union all
select * 
from Eng
where BookId = @BookId
union all
select * 
from Comm
where BookId = @BookId
union all
select * 
from Law
where BookId = @BookId
union all
select * 
from Mgt
where BookId = @BookId

可以使用UNION或UNION ALL运算符。

(SELECT * FROM ArtBook)
UNION ALL
(SELECT * FROM Eng)
...
WHERE @BookId=ArtBooks.BookId or
       @BookId=CommBooks.BookId or 
       @BookId=Eng.BookId or 
       @BookId=Law.BookId or 
       @BookId=mgt.BookId

等等。 虽然您可能会考虑重组数据的存储方式,以使这种事情变得更容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM