sql - 将两个 select <value> 合并到一个语句中?

标签 sql mysql

我的主要问题是我不知道如何说 select 1 on this cond select 2 on that cond。所以我让他们都发表了自己的声明。有没有办法将它们结合起来?

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=?;

最佳答案

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

SQL UNION allows you to combine two or more than two result set from multiple tables together.

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

  • 每个 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=?;

关于sql - 将两个 select <value> 合并到一个语句中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4760123/

相关文章:

sql - 从连接表中过滤

asp.net - Asp 将查询放入数组并在不刷新页面的情况下通过它

mysql - 选择字段匹配的数据

mysql - Hibernate HQL - 从今天开始获取下一个日期的实体

PHP Mysqli 从 JOIN 返回数组(别名为数组键)

MySQL FLOOR 函数意外结果

sql - postgres 抛出的 COPY FROM 中的语法错误

sql - 如何调度存储过程?

php - 随机但均匀地将 N 人分组? (姓名和性别)

mysql - 如果我定义一个卷,Docker-compose 将不会启动 MySQL