mysql - SQL - 如何组合选择语句?
问题描述
有什么方法可以Logical Operator -> OR
在 2 个 Select 语句之间应用吗?
我对其他解决方案持开放态度satisfies above OR Condition
。
If there is no data in 1st Select then goto next 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 有不同的条件
解决方案
一个简单的方法是union all
and exists
-- 好吧,假设两个选择返回相同的列:
with cte as (
select . . .
)
select *
from cte
union all
select *
from t2
where not exists (select 1 from cte);
推荐阅读
- google-cloud-platform - 如何使用 Java 提取 Google Cloud Platform VM 指标?
- reactjs - Draft-js-plugins 中的自定义内联工具栏不起作用
- python - 在 Tensorboard 图中看不到 dropout
- c++ - compare_exchange C++ 函数如何确定竞争条件?
- python - 使用函数组装带名称的向量时如何删除括号和撇号?
- python - 如何在不使用函数的情况下给出列表的模式:dict、import、count、max、sort、enumerate、sorted
- mysql - Sql 查询没有返回正确的结果
- c# - 检测到变量 C# 的变化时没有输出
- netflix-eureka - 在 PCF Dev 上无法访问 Eureka 客户端服务
- ios - 约束以编程方式的工作方式与情节提要中的约束不同