所以我找不到一个好的方法来进行单个查询并得到我需要的东西。我有2张桌子。
第一张表
cure
----
code (PK)
name
第二张表
interaction
------------
cure_code1 (FK)
cure_code2 (FK)
interaction
我需要得到第一种治疗方法的名称,第二种治疗方法的名称以及交互表中单行的相互作用。
答案 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
两次,但每个人都有自己的别名(c1
或c2
),以便列不明确。
如果您的应用程序可能有n
个治疗方法,那么您当前的表结构将无法运行。您需要第三个具有交互代码和固化代码的表,以便您可以进行多对多映射。