嘿所以我是sql的新手,正在建立一个库存管理系统。所以对于数据库,我在这一点上陷入困境,我需要将各种用户ID插入到公司的不同团队中,因此当我尝试将多个int值分配给特定团队时出现问题。数据库是在需要TeamId以及相应的UserId才能使用它的方式。
答案 0 :(得分:1)
这可能对你有所帮助 -
DECLARE @temp TABLE (ID INT)
-- For 2008 and higher
INSERT INTO @temp (ID)
VALUES (1), (2), (3)
-- For 2005 and higher
INSERT INTO @temp (ID)
SELECT ID
FROM (
SELECT ID = 4
UNION ALL
SELECT 5
UNION ALL
SELECT 6
) t
SELECT *
FROM @temp
更新(评论@Sivakumar:" 1,19不是整数。它是varchar。" ):
DECLARE @temp TABLE (txt varchar(500))
INSERT INTO @temp (txt)
VALUES ('1,19'), ('2,18')
SELECT t.c.value('.', 'INT')
FROM (
SELECT txml = CAST('<t>' + REPLACE(txt, ',', '</t><t>') + '</t>' AS XML)
FROM @temp
) a
CROSS APPLY txml.nodes('/t') AS t(c)
答案 1 :(得分:0)
这听起来像是一对多关系:一个团队可以拥有零个或多个用户。
因此,在User中创建一个引用Team主键的外键列。
像这样(检查我的语法):
create table team (
id int not null auto_increment,
primary key(id);
);
create table user (
id int not null auto_increment,
tid int,
primary key(id),
foreign key tid references(team);
);
select *
from team t
join user u
on t.id = u.tid;