2015-11-01 92 views
1

我有三个表:a,b和c
a:(q,r,s),b:(q,r,t),c:(q,r ,U,v)
我想打一个这样的查询:
如何结合不同的查询条件与不同的条件

select q,r from a where s="whatever", q="whatever" 
    select q,r from b where t="whatever", q="whatever" 
    select q,r from c where u="whatever", q="whatever" 

我想在一个查询,订单由R的结果。那可能吗?

回答

1

您可以使用SQL UNION运算符。它用于组合2个或更多SELECT语句的结果集。它删除各种SELECT语句之间的重复行。

UNION中的每个SELECT语句在具有相似数据类型的结果集中必须具有相同数量的字段。

例子:

select q,r from a where s="whatever", q="whatever" 
UNION 
select q,r from b where t="whatever", q="whatever" 
UNION 
select q,r from c where u="whatever", q="whatever" 
ORDER BY 1 -- If you want to order by specific colum and columns'name are different in the two select 

您可以使用UNION ALL而不是UNION的。他们之间的区别是,联盟所有不会删除重复的行。

+0

我想要按共同列排序的总结果 – user3379482

+0

如果两个SELECT语句之间的列名不同,那么通过在结果集中它们的位置引用ORDER BY子句中的列会更有利。在上面的示例中,无论名称如何,我都按字段#1排序。 –

+0

工作..谢谢路易斯 – user3379482