簡體   English   中英

用外鍵聯接表

[英]Joining tables with Foreign Keys

如何對包含2個外鍵作為其主鍵的表進行INNER JOIN

CREATE TABLE table1 (table1ID CHAR(4));
CREATE TABLE MEM_INSTR (table2ID CHAR(4));
CREATE TABLE table3 (table1ID CHAR(4), table2ID CHAR(4));

假設您只是想像鍵提示一樣將所有內容結合在一起...

SELECT *
FROM table1
INNER JOIN table3 on table3.table1ID = table1.table1ID
INNER JOIN MEM_INSTR on MEM_INSTR.table2ID = table3.table2ID

但是,假設您有這種情況。

CREATE TABLE Table1 (
    Table1ID NUMBER, 
    Generation NUMBER, 
    ... 
);

CREATE TABLE Table2 (
    Table2ID NUMBER, 
    Table1ID NUMBER, 
    Table1Generation NUMBER, 
    ...
);

假設出於參數考慮,Table1可以具有多個具有相同Table1ID的記錄,並且Generation被用作輔助鍵。 並且您需要將Table2記錄聯接到正確的單個 Table1記錄。 您可以像擴展WHERE子句一樣擴展ON子句。

SELECT *
FROM table1 t1
INNER JOIN table2 t2 
    ON t2.table1id = t1.table1id 
    AND t2.table1generation = t1.generation

您像平時一樣加入它,沒有什么特別的。 因此,您需要執行以下操作:

SELECT ...
FROM table1
INNER JOIN table3 ON table3.table1ID = table1.table1ID
INNER JOIN MEM_INSTR ON MEM_INSTR.table2ID = table3.table2ID

暫無
暫無

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

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