mysql - 对多于 1 列的 Oracle 查询执行 JOIN

标签 mysql oracle oracle10g oracle11g oracle9i

我有 2 个表,第一个表是 MASTER_TABLE,其中包含字段 ID、STATUS_CODE、STATUS_SUBCODE、SUBJECT_CODE、SUBJECT_SUBCODE,第二个表是 CODE_TABLE> 它对代码和子代码的每个组合都有唯一的描述。它具有以下字段代码子代码描述

如何编写查询来检索 ID、STATUSSUBJECT ,例如,对于 MASTER_TABLE 中 STATUS_CODE 和 STATUS_SUBCODE 的每个组合,我必须获取 STATUS 值CODE_TABLE,同样我必须对 SUBJECT 做同样的事情

最佳答案

您必须将两次连接到CODE_TABLE - 每种类型的查找一次,因此为了区分彼此的行,您必须至少为一个别名(但通常两者都可以别名,如下):

select 
  mt.ID,
  ct1.DESCRIPTION as STATUS
  ct2.DESCRIPTION as SUBJECT
from MASTER_TABLE mt
left join CODE_TABLE ct1 
    on ct1.CODE = mt.STATUS_CODE and ct1.SUBCODE = mt.STATUS_SUBCODE
left join CODE_TABLE ct2
    on ct2.CODE = mt.SUBJECT_CODE and ct2.SUBCODE = mt.SUBJECT_SUBCODE

我已经进行了left连接,以防CODE_TABLE中缺少数据,在这种情况下,此查询将为相应的描述。

关于mysql - 对多于 1 列的 Oracle 查询执行 JOIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15586162/

相关文章:

Php 不会运行 MySQL 更新查询,但查询在 MySQL 控制台中有效

php - 使用另一个 (PHP) 中的值更新 MySQL 表

mysql - 给出所有不教数学的老师的名字

php - MYSQL PDO 更新日期时间不执行任何操作

php - MySQL 正在跳过第一个结果

oracle - 使用聚合函数 Oracle 对记录进行分组

variables - Oracle 将变量与包绑定(bind)

sql - 将Oracle ApEx集合连接到实际表

sql - 表名超过 30 个字符

mysql - Group by -having 从 mysql 到 oracle 的语句