从两个查询追加结果并作为单个表输出

tHe*_*SiD 14 sql sql-server sql-server-2008

我有两个查询,我必须运行,我加入他们但他们的结果表具有相同的结构.

比如我有

select * from products where producttype=magazine

select * from products where producttype = book
Run Code Online (Sandbox Code Playgroud)

我必须结合这两个查询的结果,然后将其输出为单个结果.我必须在存储过程中执行此操作.

PS这些只是我提供的示例,我有一个复杂的表结构.最重要的是我无法加入他们.

Jah*_*ine 42

select * from products where producttype=magazine
union
select * from products where producttype = book
Run Code Online (Sandbox Code Playgroud)

  • +1请记住,"union"将删除两个集合中的重复条目.如果你可以保证两个集合是不同的,或者你不关心重复,那么`union all`将表现得更好,特别是当你的结果集变大时. (9认同)
  • 不需要联合......只能使用IN.效率更高. (2认同)

ber*_*d_k 11

我认为magazin和book是varchar值而不是表中的列

select * from products where producttype in ('magazine', 'book');
Run Code Online (Sandbox Code Playgroud)

  • +1这很可能是实际的正确答案. (2认同)

DRa*_*app 7

或者,只需一个查询......

select *  
   from products 
   where producttype = magazine
      or producttype = book 
Run Code Online (Sandbox Code Playgroud)