在表中查找特定关系

Posted

技术标签:

【中文标题】在表中查找特定关系【英文标题】:Finding specific relation in table 【发布时间】:2019-06-18 11:33:32 【问题描述】:

我有以下问题。我创建了一个名为 parentchildrenName 的表。该表在每一行中都包括父母的姓名和一个孩子的姓名。现在我想返回一对父母的名字,他们的孩子名字相同。这意味着它应该返回具有特定 childName 的 parent1 和 parent2 的名称,如下所示:

  SELECT parentName1, parentName2 childName FROM parentchildren

我不确定如何使这个命令在 mysql 中工作,任何帮助将不胜感激。

【问题讨论】:

How to create a MySQL hierarchical recursive query的可能重复 该副本包含查询方法的答案,这些方法适用于 MySQL 5.1 到 MySQL 8 以查询子父关系。 【参考方案1】:

您可以对相同的子名称但不同的父名称使用自联接。

SELECT p.parentname,
       p.childname,
       m.parentname
       FROM parentchildren p
            INNER JOIN parentchildren m
                       ON m.childname = p.childname
                          AND m.parentname < p.parentname;

如果您希望每对父母两次,父母互换位置,您可以将&lt; 更改为&lt;&gt;。或者,如果您希望每对只有一个,但要切换所有对中的位置,请将其更改为 &gt;

【讨论】:

以上是关于在表中查找特定关系的主要内容,如果未能解决你的问题,请参考以下文章

HashMap的hash冲突解决方案

HashMap的hash冲突解决方案

Java集合哈希表及哈希函数的实现方式

如何使用 postgres/nodejs 在表中查找特定内容

在表中查找最小和最大数据列

在一对多关系表中,仅从表A中获得在表B中具有多个对应行的那些行