0
所以我找不到一个很好的方法来创建一个查询并获得我所需要的。我有两张桌子。带外键的SQL查询
1台
cure
----
code (PK)
name
第二台
interaction
------------
cure_code1 (FK)
cure_code2 (FK)
interaction
我需要得到第一固化的名字,成为第二固化的名称和单行的相互作用交互表。
所以我找不到一个很好的方法来创建一个查询并获得我所需要的。我有两张桌子。带外键的SQL查询
1台
cure
----
code (PK)
name
第二台
interaction
------------
cure_code1 (FK)
cure_code2 (FK)
interaction
我需要得到第一固化的名字,成为第二固化的名称和单行的相互作用交互表。
可能被绊倒您的是,你必须加入到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
治愈,那么您当前的表结构将无法正常工作。您需要第三张具有交互代码和固化代码的表格,以便您可以执行多对多映射。
大声笑我试图做一个单一的加入,这比我预期的更容易,谢谢!是的,我不是那么愚蠢,完全理解你的查询:D – Tomek
为什么它不起作用?应用程序将有一些治疗方法,但一种治疗方法只能对另一种治疗反应一次 – Tomek
实际上,您可以使用一个连接来完成,但每个JOIN约束或IN语句都需要一个“OR”。这种方式只是更清洁的IMO。 –