簡體   English   中英

關系數據庫中的鍵和值查找

[英]Key and value lookup in relational database

我有如下數據

TABLE1
------
A  |B
1  |2
3  |4

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

預期的輸出是

D , D
--------
11, 12
13, 14

此輸出背后的邏輯是,我需要創建一個視圖,以便該視圖始終向我返回table2的D列,該列與table1的A列或B列相對應,並且與table2的C列匹配。 該視圖將用作根據table1中的鍵在Table2中查找值的查找。 如果萬一表1中的任何一個鍵在表2中沒有對應的值,則不應報告該對。

數據設置:

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語法都可以在這里工作。 我也沒有提及這一點 同樣在DWH環境中,我們將此邏輯應用於代理鍵。

您只想加入兩次:

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使用兩個不同的別名。 這就是查詢中如何區分它們的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM