【问题标题】:Join a Composite Foreign key using SQL?使用 SQL 加入复合外键?
【发布时间】:2020-07-22 18:39:37
【问题描述】:

我想知道是否有一种方法可以通过将 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


【解决方案1】:

要执行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);

【讨论】:

  • 知道了,使用外键有什么意义,那么如果我不需要它们进行连接?
  • @DylanDevotta 。 . .它们保证数据库中的数据完整性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-04
  • 2021-07-24
  • 2013-09-26
  • 1970-01-01
  • 2013-07-16
  • 1970-01-01
  • 2012-03-07
相关资源
最近更新 更多