首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关系数据库中的键和值查找

关系数据库中的键和值查找
EN

Stack Overflow用户
提问于 2014-08-18 21:41:16
回答 1查看 121关注 0票数 0

我有如下数据

代码语言:javascript
复制
TABLE1
------
A  |B
1  |2
3  |4

TABLE2
------
C  |D
1  |11
2  |12
3  |13
4  |14

预期输出是

代码语言:javascript
复制
D , D
--------
11, 12
13, 14

这个输出背后的逻辑是,我需要创建一个视图,这样视图总是返回与A列对应的table2列D或table1与table2列C匹配的B列。此视图将充当查找,根据Table2中的键查找table1中的值。如果在这种情况下,table1中的任何一个键在table2中没有相应的值,那么就不应该报告该对。

数据设置:

代码语言:javascript
复制
CREATE TABLE Table1
    ("A" number, "B" number);

INSERT ALL 
    INTO Table1 ("A", "B")       VALUES (1, 2)
    INTO Table1 ("A", "B")       VALUES (3, 4)
SELECT * FROM dual;

CREATE TABLE Table2
    ("C" number, "D" number);

INSERT ALL 
    INTO Table2 ("C", "D")       VALUES (1, 11)
    INTO Table2 ("C", "D")       VALUES (2, 12)
    INTO Table2 ("C", "D")       VALUES (3, 13)
    INTO Table2 ("C", "D")       VALUES (4, 14)
SELECT * FROM dual;

我尝试了一些连接字符串连接,但它们看起来很糟糕。这实际上是一个Kognitio数据库,但是大部分oracle语法都在这里工作。我还提到了this,但没有任何用处。这也是一个DWH环境,我们在代理键上应用了这个逻辑。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-18 21:45:25

你只想加入两次:

代码语言:javascript
复制
select t2a.D, t2b.D
from table1 t2 join
     table2 t2a
     on t1.A = t2a.C join
     table2 t2b
     on t1.B = t2b.C;

注意,table2使用了两个不同的别名。这是如何在查询中区分这些内容的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25372476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档