我在 SQL Server 数据库中有两个链接表,其中一个包含有关单个植物的信息,另一个包含链接到该植物的所有者(在单独的行中)。
我想通过连接或类似的方式“组合”这两个,但我想这样做的方式是将所有者列表压缩为一个字段,不同的所有者用逗号分隔。
这是创建一些测试数据的代码:
CREATE TABLE Plant (
PlantId INTEGER PRIMARY KEY,
Capacity DECIMAL(10,4) not null
);
CREATE TABLE PlantOwners (
OwnerId INTEGER PRIMARY KEY,
PlantFK INTEGER not null
OwnerName VARCHAR(12) not null
);
INSERT INTO Plant
VALUES
(1, 505.53),
(2, 251.4),
(3, 387.05),
(4, 179.65),
(5, 217.52)
;
INSERT INTO PlantOwners
VALUES
(1, 1, 'Apple'),
(2, 1, 'Microsoft'),
(3, 2, 'LG'),
(4, 2, 'CISCO'),
(5, 2, 'DELL'),
(6, 3, 'HP'),
(7, 3, 'Sony'),
(8, 3, 'Vornado'),
(9, 4, '3M'),
(10, 4, 'Microsoft'),
(11, 5, 'Apple')
;
这就是结果的样子。
PlantId Capacity OwnerName
1 505.53 Apple, Microsoft
2 251.4 LG, CISCO, DELL
3 387.05 HP, Sony, Vornado
4 179.65 3M, Microsoft
5 217.52 Apple
我并不那么挑剔它看起来完全像这样,所以如果(例如)在 Owners 字段的每一行中列出的最后一个项目后面有一个逗号会更容易,这对我来说很好。所以这也很好(或者类似的东西,真的):
PlantId Capacity OwnerName
1 505.53 Apple, Microsoft,
2 251.4 LG, CISCO, DELL,
3 387.05 HP, Sony, Vornado,
4 179.65 3M, Microsoft,
5 217.52 Apple,