SQL Query使用外键

时间:2016-12-02 23:14:05

标签: sql foreign-keys

所以我找不到一个好的方法来进行单个查询并得到我需要的东西。我有2张桌子。

第一张表

cure
----
code (PK)
name

第二张表

interaction
------------
cure_code1 (FK)
cure_code2 (FK)
interaction

我需要得到第一种治疗方法的名称,第二种治疗方法的名称以及交互表中单行的相互作用。

1 个答案:

答案 0 :(得分:0)

可能让你失望的是你必须两次加入cure表,每个外键一次:

SELECT
    c1.name AS first_cure,
    c2.name AS second_cure,
    i.interaction
FROM
    interaction i
JOIN
    cure c1 ON i.cure_code1 = c1.code
JOIN
    cure c2 ON i.cure_code2 = c2.code

在此查询中,我们加入cure两次,但每个人都有自己的别名(c1c2),以便列不明确。

如果您的应用程序可能有n个治疗方法,那么您当前的表结构将无法运行。您需要第三个具有交互代码和固化代码的表,以便您可以进行多对多映射。