我有以下三个表:
Permission
| PermissionId | PermissionName |
+--------------+----------------+
| 1 | A |
| 2 | B |
| 3 | C |
| 100 | D |
Group
| GroupId | GroupLevel | GroupName |
+---------+------------+----------------------+
| 1 | 0 | System Administrator |
| 7 | 0 | Test Group 100 |
| 8 | 20 | Test Group 200 |
| 9 | 20 | test |
| 10 | 50 | TestGroup01 |
| 11 | 51 | TestUser02 |
| 12 | 52 | TestUser03 |
GroupPermission
| GroupPermissionId | FkGroupId | FkPermissionId |
+-------------------+-----------+----------------+
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 1 | 4 |
我需要将记录插入到GroupPermission
表中,如果表Group
,GroupLevel
列具有0那么我需要使用其GroupId
,并需要将值插入到GroupPermission
表中,作为该特定ID和100。
为了上面的示例表记录,我需要将以下两个记录插入到GroupPermission
表中,
| FkGroupId | FkPermissionId |
+-----------+----------------+
| 1 | 100 |
| 7 | 100 |
我该怎么办
这个问题不是很清楚,我只能假设值100是静态值,并且您实际上没有外键,因为列名暗示了这一点。同样,您确实应该避免为对象名称使用诸如“ Group”之类的保留字。这使事情变得更加困难和混乱。
插入的简单版本可能看起来像这样。
insert GroupPermission
(
FkGroupId
, FkPermissionId
)
select g.GroupId
, 100
from [Group] g
where g.GroupLevel = 0