请问如何用一条sql语句实现两个表的并集查询?
这其实是一个折磨了我很久的sybase问题,但sql大同小异,
希望能有大虾解脱我。
问题举例描述如下:
库中有两表 a_message , b_message 先假定两表结构完全
一样,现要对其进行统计满足某条件的所有记录
可用 select * from a_message where ...
union
select * from b_message where ...
统计总记录数
可用 select (select count(*) from a_message) +
(select count(*) from b_message)
可以看出我必须用两条select语句,我也过用 distinct 及
不跟关联条件的两表查询语句
e.g. select distinct .. from a_message ,b_message
等各种组合,但这种方法运行效率很低,(我认为它会先生成一个
笛卡儿集),所以我想知道有没有一种办法可以用一条select 语句实
现两个表的交,并,差运算,
我现在认为select 也是一种运算,它的运算结果是一个集合,
有时集合只有一个值,因而迷惑住了别人,因而才可以有如下语句
select ... union select ...
但表跟集合又是什么关系?select .. from (select ...)
不正确,即表明 select 不能从集合中取数,只可从表中取数,
请问个位大虾是如何
看此问提的 ? 小章 这厢有礼了。