合并具有父ID和子ID的两行

时间:2017-02-15 09:22:27

标签: sql sql-server

我刚开始使用SQL,我遇到了这个问题。我必须有一个非常简单的解决方案。所有关系都保存在关系表中。然后是父母和孩子。父母是公司,孩子是该公司的联系人。每个关系都有一个RelID,但relation_relation表用于拆分公司和联系。

我遇到的问题是,我似乎无法将公司和联系人分成一排,如下所示:

| nameCompany | nameContact |
-----------------------------
|random B.V.  | emmma       |
|random B.V.  | jason       |

我想要查询两个表。这些是简化版本 几个示例值:

CREATE TABLE relations_relations (parentRelID INT, childRelID INT); 

INSERT INTO `relations_relations` VALUES (1, 1);
INSERT INTO `relations_relations` VALUES (1, 2);
INSERT INTO `relations_relations` VALUES (1, 3);

CREATE TABLE relations (RelID, nameContact, nameCompany); 

INSERT INTO `relations` VALUES (1, NULL, random B.V.);
INSERT INTO `relations` VALUES (2, emma, NULL);
INSERT INTO `relations` VALUES (3, jason, NULL);

2 个答案:

答案 0 :(得分:1)

您需要通过relations_relations表{@ 1}将关系表发送给自己:

JOIN

答案 1 :(得分:0)

我自己想通了。 你应该加入两次并使用不同的条件 两次。

在这个问题上应该是:

Select *
from Test_Relations_Relations a
    inner join Test_relations b
        on a.childrelID = b.RelID
    inner join Test_relations c
        on a.parentrelID = b.relID