将两个select <value>合并为一个语句?</value>

时间:2011-01-21 14:47:21

标签: sql mysql

我的主要问题是我不知道怎么说在这个cond选择2上选择1。所以我把它们都写成了自己的陈述。有没有办法将它们结合起来?

select 1 from FlagContent where user=? and rev = ?;
select 2 from ContentRevision r
            join ContentRevision r2 on r.content=r2.content
            join FlagContent fc on fc.user=? and fc.rev = r2.id
            where r.id=?;

1 个答案:

答案 0 :(得分:5)

使用UNION“合并”类似的结果集。

  

SQL UNION允许您将多个表中的两个或两个以上的结果集组合在一起。

但是,使用它有一些条件:

  • 每个SELECT语句中的列数必须相同
  • SELECT语句的列列表中列的数据类型必须相同或至少可以转换。

select 1 from FlagContent where user=? and rev = ?;
UNION ALL
select 2 from ContentRevision r
            join ContentRevision r2 on r.content=r2.content
            join FlagContent fc on fc.user=? and fc.rev = r2.id
            where r.id=?;