[英]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.