SQL - 将两个表(或一行中的两行)中的数据插入第三个表PLUS特定值

时间:2016-09-05 14:51:47

标签: sql sql-server sql-insert

表1:首先

id   name
1    Alpha
2    Beta

表2:第二次

id   name
1    Charlie
2    Delta

表3:关系

id   child_id   parent_id   belongsToFirst

所以我正在努力解决以下问题:

我想创建一个包含两个不同表之间的父子关系的表。因此当Alpha是Delta的父级时,第三个表将保存如下数据:

id   child_id   parent_id   belongsToFirst
1    2          1           0

如果child_id是'First'组的一部分,则belongsToFirst将为1,如果不是,则为{0}。此值(0或1)将在后端代码中设置,因此除了需要在查询中之外,它对问题并不重要。

现在我奋斗的地方是第一组中的子/父关系也是可能的。所以Beta可能是Alpha的父母。这将在后端代码中定义,该代码最终将呈现查询,因此SQL不需要解决查找关系,但需要能够从同一个表中选择两个ID。

在伪代码中,这将是:

Insert into Relations (child_id, parent_id, belongsToFirst)
Select id From (First or Second table) Where name='givenname'
And also
Select id From (First or Second table) Where name='givenname'
And lastly add value (0 or 1) to belongsToFirst

First or Second table name将由后端(不是SQL)上的代码以及givennamebelongsToFirst值生成,但如果两者都有,则查询应该仍然有效条目来自同一张表。

有人可以帮帮我吗?我一直在试图用UNION抨击我的头撞墙,但此时此事已经过去了。谢谢

0 个答案:

没有答案