2

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

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

4

1 回答 1

2

对于每种类型的查找,您必须加入两次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,在这种情况下,此查询将为null相应的描述生成一个。

于 2013-03-23T11:50:38.637 回答