在查找时加入的案例陈述
Case statements with Join on lookup
我有一个很大的 table,其中一些列具有查找值。我想为每个查找列创建一个描述列,并使用查找 table.
中的描述填充它们
这是一个例子
主要table
select id1, id2, id3 from idtable;
id1
id2
id3
1
2
3
1
3
4
查找table
select code, id, desc from lookup;
code
id
desc
id1
1
id1-desc1
id2
2
id2-desc2
id2
3
id2-desc3
id3
3
id3-desc3
id3
4
id3-desc4
我想要这样的结果集:
id1
id1desc
id2
id2desc
id3
id3desc
1
id1-desc1
2
id2-desc2
3
id3-desc3
1
id1-desc1
3
id2-desc3
4
id3-desc4
为此编写 SQL 解决方案的最佳和最有效的方法是什么?
您需要三个连接:
SELECT id1, l1.desc AS id1desc,
id2, l2.desc AS id2desc,
id3, l3.desc AS id3desc
FROM idtable i
JOIN lookup l1 ON id1 = l1.id
JOIN lookup l2 ON id2 = l2.id
JOIN lookup l2 ON id3 = l3.id
我有一个很大的 table,其中一些列具有查找值。我想为每个查找列创建一个描述列,并使用查找 table.
中的描述填充它们这是一个例子
主要table
select id1, id2, id3 from idtable;
id1 | id2 | id3 |
---|---|---|
1 | 2 | 3 |
1 | 3 | 4 |
查找table
select code, id, desc from lookup;
code | id | desc |
---|---|---|
id1 | 1 | id1-desc1 |
id2 | 2 | id2-desc2 |
id2 | 3 | id2-desc3 |
id3 | 3 | id3-desc3 |
id3 | 4 | id3-desc4 |
我想要这样的结果集:
id1 | id1desc | id2 | id2desc | id3 | id3desc |
---|---|---|---|---|---|
1 | id1-desc1 | 2 | id2-desc2 | 3 | id3-desc3 |
1 | id1-desc1 | 3 | id2-desc3 | 4 | id3-desc4 |
为此编写 SQL 解决方案的最佳和最有效的方法是什么?
您需要三个连接:
SELECT id1, l1.desc AS id1desc,
id2, l2.desc AS id2desc,
id3, l3.desc AS id3desc
FROM idtable i
JOIN lookup l1 ON id1 = l1.id
JOIN lookup l2 ON id2 = l2.id
JOIN lookup l2 ON id3 = l3.id