当前位置: 首页 > 知识库问答 >
问题:

如何组合Select语句?

苗学民
2023-03-14

有没有办法在2个Select语句之间应用逻辑运算符->或

我对满足上述或条件的其他解决方案持开放态度。

如果第一个选择中没有数据,则转到下一个选择

示例

SELECT column1, column2
  FROM table-name1 JOIN table-name2 
    ON column-name1 = column-name2
 WHERE //all condition

SELECT column3, column4
  FROM table-name3 JOIN table-name4 
    ON column-name3 = column-name4
 WHERE //all condition

条件1/查询1

async getData() {
        try {
            const data = await this._conn.query(`

select first_name.value_name,quiz_table.answer, windows,player,first_name.value_id,country_place,current_name, pet_name, marker, relations
from schema_name.plugin,schema_name.quiz_table,schema_name.first_name, schema_name.value_version, schema_name.relationss
where plugin.answer= quiz_table.answer
and quiz_table.windows=first_name.value_id
and marker is not null
and schema_name.value_version.value_id= schema_name.first_name.value_id
and schema_name.value_version.caste= schema_name.first_name.caste
and schema_name.value_version.value_name= schema_name.first_name.value_name
and schema_name.value_version.version_number= schema_name.first_name.version_number
and schema_name.relationss.value_id= schema_name.first_name.value_id
and schema_name.relationss.caste= schema_name.first_name.caste
and schema_name.relationss.value_name= schema_name.first_name.value_name
and schema_name.relationss.version_number= schema_name.first_name.version_number
and  schema_name.quiz_table.windows= schema_name.first_name.value_id
and in_process='N'
}

条件2/查询2-显示数据

select schema_name.relationss."relations", schema_name.quiz_table."answer", schema_name.quiz_table."windows", schema_name.quiz_table."in_process", schema_name.quiz_table."object_name", schema_name.quiz_table."processed_date", schema_name.quiz_table."player", schema_name.quiz_table."country_place", schema_name.tools."mesh_scope_note", schema_name.plugin."current_name", schema_name.plugin."pet_name"
            from schema_name.quiz_table, schema_name.tools, schema_name.plugin, schema_name.relationss, schema_name.value_version 
            where (in_process = 'N' 
              and schema_name.quiz_table."windows" = schema_name.tools."value_id"
              and schema_name.quiz_table."player" = schema_name.tools."language"
              and schema_name.quiz_table."answer" = schema_name.plugin."answer"
              and schema_name.relationss."language" = schema_name.quiz_table."player"
              and schema_name.relationss."language" = schema_name.tools."language"
              and schema_name.relationss."caste" = schema_name.tools."caste"
              and schema_name.relationss."value_name" = schema_name.tools."value_name"
              and schema_name.relationss."version_number" = schema_name.tools."version_number"
              and schema_name.relationss."value_id" = schema_name.tools."value_id"
              and schema_name.value_version."value_id" = schema_name.tools."value_id"
              and schema_name.value_version."version_number" = schema_name.tools."version_number"
              and schema_name.value_version."caste" = schema_name.tools."caste"
)

注意-在where子句中,两个Select具有不同的条件

共有1个答案

郗俊能
2023-03-14

一个简单的方法是union allexists--假设两个选择返回相同的列:

with cte as (
      select . . .
     )
select *
from cte
union all
select *
from t2
where not exists (select 1 from cte);
 类似资料:
  • 问题内容: 我使用iBatis作为Java中的ORM框架。我有一条选择声明 我正在使用queryForList方法: 但是它会检索大量数据,并且此查询的性能非常慢。 我对此问题的假设是iBatis具有默认的提取大小(例如,在JDBS中为10),这就是为什么它这么慢的原因。所以我想设置更大的获取大小(例如1000)。我该怎么做? 还是我看错了方向? 注意:我需要所有数据,因此在method中设置ma

  • 问题内容: 如何在SQL中遍历SELECT语句的结果?我的SELECT语句将仅返回1列,但返回n个结果。 我在下面创建了一个虚构的场景,其中包含我想做的事情的伪代码。 设想: 学生正在注册他们的课程。他们提交具有多个课程选择的表格(即一次选择3个不同的课程)。当他们提交注册时,我需要确保他们选择的课程还有剩余的空间(请注意,在向他们展示课程选择UI之前,我将进行类似的检查,但是之后我需要进行验证,

  • 我相信这个sql语句可以工作,但我不知道如何用Java构建这个语句。我的算法技能不是最好的,我试着用一个for循环来处理列表,但我不能拼凑出第二个get引用。太感谢你们了!

  • Go 语言条件语句 select是Go中的一个控制结构,类似于用于通信的switch语句。每个case必须是一个通信操作,要么是发送要么是接收。 select随机执行一个可运行的case。如果没有case可运行,它将阻塞,直到有case可运行。一个默认的子句应该总是可运行的。 语法 Go 编程语言中 select 语句的语法如下: select { case communication

  • 问题内容: 我有以下SQL语句: 我读过我可以使用括号来完成此操作,但我想知道这是否有效: 或者 问题答案: 这两个都是有效的,但是由于优先级高于,因此它们的含义有所不同: 您的第一个带括号的查询将选择类型为3、4、5的已删除行 第二个带括号的查询将选择类型为3、5的所有行,以及类型为4的已删除行。这与不带括号的原始查询的含义相同。 您可以使用operator完全避免混淆,如下所示: 或者如果您想

  • 我有一个使用此方法渲染的视图: 该视图显示有关员工的一些基本信息。在同一个视图中,我确实有一个表单来选择月份,并按日期过滤信息。选择日期后,我想用更新的信息“刷新”视图。这意味着我有一个职位 调用第二个方法后,看起来像<代码>http://localhost:8080/passdate?employeeId=1 如果我在这两种方法上都设置了RequestMapping(“/employee/{id