【发布时间】:2016-10-31 15:18:10
【问题描述】:
您好,我有两张基本表,一张是公司,下一张是这两张表之间的项目关系是 1 到 M(1 家公司有许多与之关联的项目,而一个项目只属于一家公司)
Company = {companyid,companyname}
_________
items = {itemid,itemname,companyid}
_______ ---------
我已将 itemid 标识规范设置为 YES,现在项目 ID 增加了 如果我有两家公司 id 1 & 2 示例数据表将显示此
itemid itemname idcompany
----- ------- ---------
1 car 1
2 bus 2
3 bike 1
4 motorcycle 2
我的问题是在显示公司特定数据时我得到了这个
company 1
itemid itemname idcompany
----- ------- ---------
1 car 1
3 bike 1
company 2
itemid itemname idcompany
----- ------- ---------
2 bus 2
4 motorcycle 2
如何保持每家公司的项目 ID 顺序?
谢谢你
【问题讨论】:
-
您不应该尝试“保持 id 顺序” - 这不是 PK 目的。添加 row_number() 到 select 语句,甚至在客户端生成这个 rn。
-
如果我添加另一列并检查 max(itemid2) 并增加是否可以,因为如果我不能保持 PK 顺序最好显示另一个唯一的 ID 不是吗?
-
当然,肯定可以有
sort_no/priority之类的专栏。 -
您可以添加一个计算列以根据公司 ID 和一般项目 ID 保留每个公司的项目 ID,或者在您的选择语句中使用
row_number() over(partition by idcompany order by itemid)。
标签: sql-server database auto-increment composite-primary-key