sql - 两个表之间的链接
问题描述
我有两张桌子:
TableA
其中包含所有产品的描述:
codeProduct description
1 ok
2 yes
TableB
仅包含带有代码的产品之间的层次结构:
level_1 level_2 level_3 level_4
1 2 23 75
1 2 53 85
我怎样才能得到一个包含每个级别描述的决赛桌
level_1 description_1 level_2 description_2 level_3 description_3 level_4 description_4
解决方案
尝试这个:
CREATE TABLE #TABLEA
(
CODEPRODUCT INT NOT NULL
, DESCRIPTION VARCHAR (100) NOT NULL
);
INSERT INTO #TABLEA VALUES (1, 'ok') ;
INSERT INTO #TABLEA VALUES (2, 'yes');
CREATE TABLE #TABLEB
(
LEVEL_1 INT NOT NULL
, LEVEL_2 INT NOT NULL
, LEVEL_3 INT NOT NULL
, LEVEL_4 INT NOT NULL
);
INSERT INTO #TABLEB VALUES(1, 2, 23, 75) , (1, 2, 53, 85);
SELECT #TABLEB.LEVEL_1
, TA_L1.DESCRIPTION AS DESCRIPTION1
, #TABLEB.LEVEL_2
, TA_L2.DESCRIPTION AS DESCRIPTION2
, #TABLEB.LEVEL_3
, TA_L3.DESCRIPTION AS DESCRIPTION3
, #TABLEB.LEVEL_4
, TA_L4.DESCRIPTION AS DESCRIPTION4
FROM #TABLEB
LEFT JOIN #TABLEA TA_L1
ON #TABLEB.LEVEL_1 = TA_L1.CODEPRODUCT
LEFT JOIN #TABLEA TA_L2
ON #TABLEB.LEVEL_2 = TA_L2.CODEPRODUCT
LEFT JOIN #TABLEA TA_L3
ON #TABLEB.LEVEL_3 = TA_L3.CODEPRODUCT
LEFT JOIN #TABLEA TA_L4
ON #TABLEB.LEVEL_4 = TA_L4.CODEPRODUCT;
结果:
LEVEL_1, DESCRIPTION1, LEVEL_2, DESCRIPTION2, LEVEL_3, DESCRIPTION3, LEVEL_4, DESCRIPTION4
1 ok 2 yes 23 NULL 75 NULL
1 ok 2 yes 53 NULL 85 NULL
推荐阅读
- azure-ad-graph-api - 用于列出我所属的所有 Azure AD 租户的公共 API
- python - 根据来自其他 2 个列表的索引比较 2 个列表,并使用列表理解将索引保存在新列表中
- macros - 我们如何使用 %sysfunc 来计算数值变量的平均值?
- apostrophe-cms - 在后端添加页面而不是管理界面
- python - pygame精灵组绘制不绘制所有精灵
- c# - 通过构造函数将方法参数发送到动作过滤器
- java - 如何将不断变化的数字传递给另一个类,以便每次该变量更改时它都会执行命令?
- excel - 如何为单元格分配变量值以避免 VBA 运行时错误 5?
- vue.js - 如何更改/覆盖 vuetify 中开关标签的默认颜色?
- input - 使用拖放功能填充输入框值