如何在存储过程中使用复合 pk?
How do I use a composite pk in a stored procedure?
我是存储过程的新手,我想创建一个存储过程,我通过三个 table 来获取我需要的数据,第三个 table 有一个复合 pk这让我有点抓狂,我就是无法正确看待这个问题。但我必须解决它。
我有一个数据库,其中包含三个彼此相关的 table - player
、company
、company_resource
。 tables player
和 company
具有正常的 pk (id
) 而 company_resource
具有复合 pk (company_id
, resource_id
- resource_id
来自另一个 table,这是不相关的权利知道)。另外 company
table 有一个外键 player_id
所以它看起来像这样:
player-Table:
id
1
2
3
4
...
company-Table:
id player_id (fk)
1 1
2 1
3 2
4 3
...
company_resource-Table:
company_id (pk) resource_id (pk)
1 1
1 2
1 3
1 4
2 1
2 2
知道我想将 player_id
传递给我的存储过程,首先获取所有具有相同 player_id
的公司,然后获取从中找到的公司的所有 company_resource
条目给出 player_id
.
我的主要目标是获取属于特定玩家的公司的所有资源,然后对特定列进行求和,因此我可以将求和的结果值写入 player
table.
我已经搜索了不同的帖子,但找不到任何合适的解决方案。
我不会写存储过程逻辑,但这是一个简单的连接。
您根据共享密钥(公司 ID)将公司 table 连接到公司资源 table;然后,您可以通过指定 player_id.
来限制您查看的公司数量
select *
from company c
inner join company_resource cr
on c.company_id = cr.company_id
where c.player_id = ?
我是存储过程的新手,我想创建一个存储过程,我通过三个 table 来获取我需要的数据,第三个 table 有一个复合 pk这让我有点抓狂,我就是无法正确看待这个问题。但我必须解决它。
我有一个数据库,其中包含三个彼此相关的 table - player
、company
、company_resource
。 tables player
和 company
具有正常的 pk (id
) 而 company_resource
具有复合 pk (company_id
, resource_id
- resource_id
来自另一个 table,这是不相关的权利知道)。另外 company
table 有一个外键 player_id
所以它看起来像这样:
player-Table:
id
1
2
3
4
...
company-Table:
id player_id (fk)
1 1
2 1
3 2
4 3
...
company_resource-Table:
company_id (pk) resource_id (pk)
1 1
1 2
1 3
1 4
2 1
2 2
知道我想将 player_id
传递给我的存储过程,首先获取所有具有相同 player_id
的公司,然后获取从中找到的公司的所有 company_resource
条目给出 player_id
.
我的主要目标是获取属于特定玩家的公司的所有资源,然后对特定列进行求和,因此我可以将求和的结果值写入 player
table.
我已经搜索了不同的帖子,但找不到任何合适的解决方案。
我不会写存储过程逻辑,但这是一个简单的连接。
您根据共享密钥(公司 ID)将公司 table 连接到公司资源 table;然后,您可以通过指定 player_id.
来限制您查看的公司数量select *
from company c
inner join company_resource cr
on c.company_id = cr.company_id
where c.player_id = ?