首页 > 解决方案 > 使用 SQL 加入复合外键?

问题描述

我想知道是否有办法通过将 COMPOSITE FOREIGN KEY 表与 COMPOSITE PRIMARY KEY TABLE 匹配来进行 INNER JOIN,反之亦然

例如,我有一个带有复合主键(MACHINE,LOGINTIME)的表“SHIFT_INFO”。列是 MACHINE、LOGINTIME、EMPLOYEE、PART、DURATION、GOODPARTS

我有一张带有 PRIMARY/FOREIGN KEYS (MACHINE,LOGINTIME) 的表。这些列是 MACHINE、LOGINTIME、EMPLOYEE、PART、DEFECT1_count、DEFECT2_count、DEFECT3_count、Total_Defects

假设我想加入 SHIFT_INFO 以包含 Total_Defects。我怎样才能做到这一点?

标签: sql

解决方案


做一个JOIN你不需要外键。那将是:

select si.*, t2.total_defects
from table2 t2 join
     shift_info si
     on si.machine = t2.machine and si.logintime = t2.logintime;

如果你想添加一个外键约束,那就是:

alter table table2 add constraint fk_table2_shift_info
    foreign key (machine, logintime) references shift_info(machine, logintime);

推荐阅读