【问题标题】:How can I use Logical Operator between 2 Select Statements?如何在 2 个 Select 语句之间使用逻辑运算符?
【发布时间】:2021-04-15 02:54:01
【问题描述】:

我有几个表是通过某些条件连接的。

我想要实现的是Combine 2 SELECT statements in such way where

如果条件 1 中有数据,则显示它们或转到条件 2 并显示数据

Condition 1 - 我正在从表中获取记录例如A, B, C and D基于某些条件

Condition 2 - 我正在从表中获取记录例如 A, B, C and E 基于某些条件

我想要达到的目标是

Display record if it exists in Condition 1

OR

Display record if it exits in Condition  2

条件 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"
)

注意 - 1-> I cannot use function or procedure 这里。

       2-> Both the `Conditions` contains `different data` 

【问题讨论】:

    标签: mysql sql select pgadmin


    【解决方案1】:

    问题是,计算机将如何选择要转到哪个选项?计算机不会选择,它不能。您必须提供一些可供选择的指标。布尔运算符 || (or) 用于检查是否为真(声明式排序),而不是命令式。你可以“问”“a 还是 b 是真的?”但是你不能告诉计算机,“做这个或那个”没有任何重量,这会向计算机解释选择哪个以及何时选择。

    问什么是可能的,

    “如果条件1有数据,则显示;如果没有,则转至条件2,显示数据”。

    如果这符合您的需求,这就是它的编码方式(这只是框架)。

    if (data1 != null) {
        show data1
    }
    else {
       show data2
    }
    

    或者您的数据可能是非空的,但没有内容,您可以尝试从中获取一些数据(例如,getChildren()完全随机,我只是在制作那个):

    if (data1.getChildren() != null) {
        show data1
    }
    else {
        show data2
    }
    

    我希望你知道这只是它理论的伪代码。 show_ 不是实际代码,它只是您要编写的任何内容的占位符。这是否可行 - 检查它是否为空和/或检查其内容是否为空(即它是空的/没有数据),如果是,则转到下一个数据集?

    我不知道 sql,但我认为 check-null/check-contents-null 的想法可能会有所帮助。

    【讨论】:

    • 感谢您的回答,这就是我正在尝试使用 sql 来解决的问题。查询似乎并不简单
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-08
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 2013-11-25
    • 1970-01-01
    相关资源
    最近更新 更多