如何使两个查询中的两个结果(具有相同的列)显示在单个查询表中

时间:2014-10-28 05:11:28

标签: sql

我不知道我的问题是否可以理解, 情况喜欢这样: 我有两个查询,它们具有显示面板ID和左点的相同要求,但一个是仍然获得2000积分的客户,一个是已经兑换一次的客户,我在下面写下两个查询。

1)

select panel_ID,current_points_balance, sum(points_earned) as totalpoint
from Tbl_member, Tbl_member_participation
where tbl_member_participation.member_id = Tbl_member.member_id
group panel_Id, current_points_balance
having totalpoint > 2000

2)

select panel_ID,current_points_balance, sum(points_earned) as totalpoint
from Tbl_member, Tbl_member_redemption
where tbl_member_redemption.member_id = Tbl_member.member_id
group panel_Id, current_points_balance

所以我的问题是如何在一个查询中组合这两个条件,或者只在一个表中显示两个查询的两个结果?我不认为我可以简单地使用"或"把它们结合起来,这是我所知道的唯一方法。

2 个答案:

答案 0 :(得分:4)

关键字UNION和UNION ALL用于连接两个查询的结果与SAME NO OF COLUMNS。

在您的查询中使用UNION语句。不确定以下内容是否适用于您的数据库。但是请尝试在任何问题上发表评论

select panel_ID,current_points_balance, sum(points_earned) as totalpoint
from Tbl_member, Tbl_member_participation
where tbl_member_participation.member_id = Tbl_member.member_id
group panel_Id, current_points_balance
having totalpoint > 2000
UNION
select panel_ID,current_points_balance, sum(points_earned) as totalpoint
from Tbl_member, Tbl_member_redemption
where tbl_member_redemption.member_id = Tbl_member.member_id
group panel_Id, current_points_balance

答案 1 :(得分:1)

如果你想将这些查询的结果合并到一个视图中,我的意思是你有两个colums panel_ID,current_points_balance,你想在同一列本身显示两个查询的结果,然后使用{{1} },UNION

UNION ALL

或者您可以使用

select 
    panel_ID, current_points_balance, 
    sum(points_earned) as totalpoint
from 
    Tbl_member, Tbl_member_participation
where 
    tbl_member_participation.member_id = Tbl_member.member_id
group 
    panel_Id, current_points_balance
having 
    totalpoint > 2000

UNION

select 
    panel_ID,current_points_balance, 
    sum(points_earned) as totalpoint
from 
    Tbl_member, Tbl_member_redemption
where 
    tbl_member_redemption.member_id = Tbl_member.member_id
group 
    panel_Id, current_points_balance

select panel_ID,current_points_balance, sum(points_earned) as totalpoint from Tbl_member, Tbl_member_participation where tbl_member_participation.member_id = Tbl_member.member_id group panel_Id, current_points_balance having totalpoint > 2000 UNION ALL select panel_ID,current_points_balance, sum(points_earned) as totalpoint from Tbl_member, Tbl_member_redemption where tbl_member_redemption.member_id = Tbl_member.member_id group panel_Id, current_points_balance UNION之间的区别只不过是union会消除所有重复的行,而union将不会消除重复的行

试试这个,如果有任何问题与此相关,请发表评论