我如何INNER JOIN
一个包含2个外键的表作为主键?
CREATE TABLE table1 (table1ID CHAR(4));
CREATE TABLE MEM_INSTR (table2ID CHAR(4));
CREATE TABLE table3 (table1ID CHAR(4), table2ID CHAR(4));
答案 0 :(得分:1)
假设你想按键建议加入所有内容......
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记录。您可以像展开ON
子句一样展开WHERE
子句。
SELECT *
FROM table1 t1
INNER JOIN table2 t2
ON t2.table1id = t1.table1id
AND t2.table1generation = t1.generation
答案 1 :(得分:0)
你像往常一样加入它,没有什么特别之处。所以你会这样:
SELECT ...
FROM table1
INNER JOIN table3 ON table3.table1ID = table1.table1ID
INNER JOIN MEM_INSTR ON MEM_INSTR.table2ID = table3.table2ID