【问题标题】:Link one key to two tables conditionally [duplicate]有条件地将一个键链接到两个表[重复]
【发布时间】:2017-02-23 03:30:46
【问题描述】:

我有三张桌子Table1 (Name, Roll), B( ID, School) & C (ID, State)

Roll in Table 1 是外键

如何将Table1(Roll) 引用到B(ID)C(ID)

条件是Roll > 500引用BRoll <= 500引用C

如果允许我们修改Table1,创建多个引用的通用方法是什么?即。根据条件链接任何表(A、B、..、X、Y、...)的 Table1。 在 SQL 中甚至有可能吗?

添加编辑:我不需要加入它,我只需要引用它。

【问题讨论】:

  • 你不能。一个特定的 FK 是一个且只有一个表。但是,您可以实现复杂的复合外键
  • @Drew:如何实现复合外键?
  • 我想我写了 2 或 3 个在此搜索中看到的四个 Here ... 我将它们标记为这样。也许它们会很有用。他们当然可以治愈失眠。
  • 还有mysql的概念条件连接 ...它们是用左连接实现的
  • 能否详细说明?

标签: mysql sql reference foreign-keys


【解决方案1】:

如果您使用的是 t-sql/pl-sql,最好的方法是创建函数和/或条件,让您可以使用正确的表进行引用。请详细说明您想要完成什么以及您正在使用什么。

【讨论】:

  • 我正在使用 Mysql。我需要完成从表 1 到 B、C 的多个引用。如果 Roll > 500 并且到 C 是 Roll ,则引用应该是从 Table1 到 B
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-11
  • 1970-01-01
  • 2016-10-06
  • 2011-11-26
  • 2018-03-09
  • 1970-01-01
相关资源
最近更新 更多