数据库中某一列的值用逗号分隔,在显示时如何引用其他表的数据?
举个例子详细说明一下..表AId[唯一]Value[不唯一]122435142520表BId[唯一]Value[不唯一]1122,334,541,2,3就是说表B中的Va...
举个例子详细说明一下..
表A
Id[唯一] Value[不唯一]
1 2
2 4
3 51
4 2
5 20
表B
Id[唯一] Value[不唯一]
1 1
2 2,3
3 4,5
4 1,2,3
就是说表B中的Value列中的值是表A中的ID和逗号串接而成的字符串,
我希望能够在程序中显示表格的时候将表A的Value根据B的Value中填写的Id代入表B的Value值.
请问能否实现?如何实现? 能提供一些思路和关键的代码么?
还有如何溯源?就是B的Value被替代后就是A中的Value串了,因为A里面的值会有重复的,如何找到它的Id?
麻烦各位了.
程序使用Visual Basic制作[VB比较方便...],其他语言也可以吧,我参考一下.
表格控件使用 Microsoft Flexgrid Control 或者 Microsoft Hierarchial Flexgrid Control.
我也没用过这两个,随便吧..能用就好了..... 展开
表A
Id[唯一] Value[不唯一]
1 2
2 4
3 51
4 2
5 20
表B
Id[唯一] Value[不唯一]
1 1
2 2,3
3 4,5
4 1,2,3
就是说表B中的Value列中的值是表A中的ID和逗号串接而成的字符串,
我希望能够在程序中显示表格的时候将表A的Value根据B的Value中填写的Id代入表B的Value值.
请问能否实现?如何实现? 能提供一些思路和关键的代码么?
还有如何溯源?就是B的Value被替代后就是A中的Value串了,因为A里面的值会有重复的,如何找到它的Id?
麻烦各位了.
程序使用Visual Basic制作[VB比较方便...],其他语言也可以吧,我参考一下.
表格控件使用 Microsoft Flexgrid Control 或者 Microsoft Hierarchial Flexgrid Control.
我也没用过这两个,随便吧..能用就好了..... 展开
1个回答
推荐于2017-09-12
展开全部
数据库是什么数据库?
SQL Server 2005 以上版本的话, 倒是没有问题的...
直接一条语句就可以处理了。
-- 测试表 和测试数据。
CREATE TABLE #A (
Id INT,
Value varchar(6)
);
GO
INSERT INTO #A VALUES(1, '2');
INSERT INTO #A VALUES(2, '4');
INSERT INTO #A VALUES(3, '51');
INSERT INTO #A VALUES(4, '2');
INSERT INTO #A VALUES(5, '20');
GO
CREATE TABLE #B (
Id INT,
Value VARCHAR(10)
);
GO
INSERT INTO #B VALUES(1, '1');
INSERT INTO #B VALUES(2, '2,3');
INSERT INTO #B VALUES(3, '4,5');
INSERT INTO #B VALUES(4, '1,2,3');
GO
-- 一条 查询的 sql 语句。
SELECT
id,
cast(
STUFF(
(
SELECT
',' + a.value
FROM
#a a
WHERE
CHARINDEX( ',' + RTRIM(cast(a.id as char)) + ',', ',' + b.Value + ',' ) > 0
FOR XML PATH('')
), 1, 1, '')
as varchar(10)) AS Value
FROM
#b b;
GO
-- 查询的结果如下:
id Value
----------- ----------
1 2
2 4,51
3 2,20
4 2,4,51
(4 行受影响)
更多追问追答
追问
我用的是Access数据库.
追答
那你就等会 VB 的人来帮忙了......
我 VB 基本不会, 只会几种数据库, 帮不上忙啦!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询