如何使用MySQL比较元组?

时间:2016-01-23 13:18:15

标签: sql comparison tuples mysql-workbench

还有一个问题。我需要你的帮助。

列出已输入相同(相同)但与疾病相关性不同的药物清单。

logging framework identical_with

same medications协会

我不知道该怎么做。

结果应该是这种情况:

different association结果

2 个答案:

答案 0 :(得分:1)

要解决您的问题,您需要使用两次表关联。以下代码应该没问题:

select
    i.Name_1, i.Name_2
from
    association a
inner join
    identical_with i
    on i.Name_1 = a.Name
inner join
    association a2
    on i.Name_2 = a2.Name
where
    a2.Fachname <> a1.Fachname 

答案 1 :(得分:0)

对于评论来说这有点长,虽然答案基本上是“你不能在MySQL中做到这一点”。

您正在寻找的支持是分层或递归查询。几乎除MySQL之外的每个数据库都内置了对这些类型查询的支持。这使您基本上有四种选择:

  • 切换到使用具有此类支持的数据库。在免费数据库中,包括Postgres,SQL Server Express和Oracle Express。
  • 如果限制等效深度,可以使用repeated self joins
  • 您可以在存储过程中使用while循环执行此操作。但是,这不是单个SQL语句。
  • 使用nested set model
  • 使用存储完整路径的方法。

不幸的是,最后两个方法需要触发器来维护插入,更新和删除的数据结构。