有两个表表A
id class
1 a
2 b
3 d表B
id name class
1 abc a,b两个表的关系是:在表A存好分类(class) ; 表B的class字段存储所属表A的分类名(class),多个间用","号隔开要实现的功能是, 查询出表A的class数据,条件是不包含表B已经有的class(比如表B第一行有a,b 就查询出一个d出来)select * from 表A where ...下面就要请教大家了
id class
1 a
2 b
3 d表B
id name class
1 abc a,b两个表的关系是:在表A存好分类(class) ; 表B的class字段存储所属表A的分类名(class),多个间用","号隔开要实现的功能是, 查询出表A的class数据,条件是不包含表B已经有的class(比如表B第一行有a,b 就查询出一个d出来)select * from 表A where ...下面就要请教大家了
解决方案 »
- 在这里问下.net 数据库的连接池 连接池的数目最好设置多少才好呢?是根据访问人数来说的还是默认的一个值就行呢
- 如何判断DetailView中是否有数据显示??
- DataGrid控件问题
- 100分求《asp.net 网络数据库开发实例精解》配套光盘源码
- 为什么取到的是空值?而不是输入的值,应该怎么取得输入的值?
- 大家看一下,我做了一个组织结构,
- .net中如何获取客户端控件的值?
- datagrid行颜色改变问题(不简单,请指教)
- asp.net中用哪个语言写更好些呢?C#还是vb.net还是其它?
- 输出格式是json的webservice该如何调用?
- 自定义SoapHeader
- 如何停止更新 JScript IntelliSense
--> 我的淘宝:《戒色坊》http://shop36766744.taobao.com/if object_id('[TA]') is not null drop table [TA]
create table [TA]([id] int,[class] varchar(1))
insert [TA]
select 1,'a' union all
select 2,'b' union all
select 3,'d'
if object_id('[TB]') is not null drop table [TB]
create table [TB]([id] int,[name] varchar(3),[class] varchar(3))
insert [TB]
select 1,'abc','a,b'select A.* from [TA] A,TB B where charindex(','+A.class+',',','+B.class+',')=0/*id class
----------- -----
3 d(所影响的行数为 1 行)*/drop table TA,[TB]
按我的习惯我会再设计一个关联表!形成:
表A
id class
1 a
2 b
3 d 表B
id name
1 abc 表C
id nameId classId
1 1 1
2 1 2
3 3 2
4 2 1select class from A where id out(select classid from C ) 这样d 就出来了~~ 虽然有点冗余!但是查询方便很多了~~ 好了期待其他大大的指点~~
我用到了ORACLE的一个方法:INSTR()判断字符是否存在于字符串。
查询条件是:逐条判断A表中CLASS字段的值,如果不存在于B表的CLASS字段的值中则查询出来,最后UNION起来。
带背景色的地方注意传值,对B表是指定行ID,对A表是全遍历。
SELECT * FROM A
WHERE INSTR((SELECT CLASS FROM B WHERE ID='1'),
(SELECT CLASS FROM A WHERE ID1='1')) = 0
AND ID='1'
UNION
SELECT * FROM A
WHERE INSTR((SELECT CLASS FROM B WHERE ID='1'),
(SELECT CLASS FROM A WHERE ID1='2')) = 0
AND ID='2'
UNION
SELECT * FROM A
WHERE INSTR((SELECT CLASS FROM B WHERE ID='1'),
(SELECT CLASS FROM A WHERE ID1='3')) = 0
AND ID='3'
WHERE NOT EXISTS (SELECT 1 FROM B T2
WHERE INSTR(T2.CLASS,T1.CLASS)>0);
如果B表里不只一条数据如何处理、、、
楼主的问题感觉有点模糊,就像如果B表里的有多条数据的话,那A是1对N呢还是1对1呢,关联又是什么、、、