MySQL中如何将提取的组织代码关联客户表获取对应Site_ID
关联获取Site_ID的可行方案
你可以通过JOIN语句将两张表关联,用从单据号提取的组织代码匹配客户表的Org_Code字段,从而获取对应的Site_ID。以下是两种常用实现方案:
方案1:内连接(仅保留匹配成功的记录)
如果只需要保留能在客户表中找到对应组织代码的发货申请记录,使用内连接:
SELECT DOC_NBR, SUBSTR(DOC_NBR, 1, 6) AS "Org Code", C.SITE_ID, ASN, QTY_TOT_SHIP AS QTY, DATE_ALLOC AS SHIP_DATE FROM CLS_REQN_SHIP_ARCH INNER JOIN cls_CUSTOMER C ON SUBSTR(DOC_NBR, 1, 6) = C.Org_Code WHERE ASN = 'R400-2A5-RED' AND QTY_TOT_SHIP IS NOT NULL ORDER BY SHIP_DATE DESC;
方案2:左连接(保留所有符合条件的发货申请记录)
如果想保留所有满足ASN和QTY_TOT_SHIP条件的发货申请记录,即使对应的组织代码在客户表中不存在(此时SITE_ID会显示NULL),使用左连接:
SELECT DOC_NBR, SUBSTR(DOC_NBR, 1, 6) AS "Org Code", C.SITE_ID, ASN, QTY_TOT_SHIP AS QTY, DATE_ALLOC AS SHIP_DATE FROM CLS_REQN_SHIP_ARCH LEFT JOIN cls_CUSTOMER C ON SUBSTR(DOC_NBR, 1, 6) = C.Org_Code WHERE ASN = 'R400-2A5-RED' AND QTY_TOT_SHIP IS NOT NULL ORDER BY SHIP_DATE DESC;
关键说明
- 关联条件直接用
SUBSTR(DOC_NBR, 1, 6)匹配客户表的Org_Code,无需额外别名引用 - 内连接会过滤无对应组织代码的记录,左连接则保留所有源表记录,按需选择即可
内容的提问来源于stack exchange,提问作者user21344498
相关产品推荐
相关产品推荐

