不好意思,我的意思就是说如果a表里面的a到n字段的值(任何一个,or的关系)如果和b表里面的i字段的值相等,那么这条记录就要表示出来。如果一条记录里面多个字段的值和b表i字段不同的值相等,只输出a表的这一条记录。
解决方案 »
- MS SQL2005安装出错!
- 触发器的问题,会的朋友帮帮我。
- 最近要做软件课程设计要用到数据库,我想用sql server,网上有好多版本,2000,2005,2008等等,不知道用哪个好,高手指点一下
- 怎么把下面的功能写成存储过程
- T-sql一个面试题,大家帮忙看看怎么解决
- ACCESS中用了 “Transform.....”,这么移植到 sql server上呢?
- 帮忙写句SQL语句,修改数据1->001,20->020,谢谢~
- 求一删除数据库重复记录的SQL语句
- 帮帮我~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Oracle8i 大对象Blob的存取,绝对高难度
- SQL组下面无项目
- sql存储过程显示报表的问题
select distinct A.* from A,B where A.字段a in(select 字段i from B)
or
A.字段b in(select 字段i from B)
or
A.字段c in(select 字段i from B)
or
A.字段d in(select 字段i from B)
create table A(字段a varchar(10),字段b varchar(10),字段c varchar(10),字段d varchar(10)) insert A select '1','2','3','4'
insert A select '5','6','e','f'
insert A select 'h','g','8','f'
insert A select 't','t','q','9'
insert A select 't','tt','t','y'
insert A select 't','tr','t','y'
create table B(字段i varchar(10))
insert B select 1
insert B select 2
insert B select 3
insert B select 4
insert B select 5
insert B select 6
insert B select 7
insert B select 8
insert B select 9
select distinct A.* from A,B where A.字段a in(select 字段i from B)
or
A.字段b in(select 字段i from B)
or
A.字段c in(select 字段i from B)
or
A.字段d in(select 字段i from B)/*结果
字段a 字段b 字段c 字段d
---------- ---------- ---------- ----------
1 2 3 4
5 6 e f
h g 8 f
t t q 9(所影响的行数为 4 行)
*/
不好意思,我太着急了,没有表达清楚。我把需求详细解释一下。客户的需求是现在有2张表,表a和表b,b表的i字段作为外键和a表的n个字段关联检索,例如:a.a=b.i or a.b=b.i or a.c=b.i 满足条件则输出数据(到这里xueguang兄已经解决没有问题)可是客户还需要将同样满足条件的b表的h字段的值放到结果集里面,以便在下面的程序逻辑里面与画面输入的值进行比较,小弟以前的逻辑和xueguang兄类似,可是这样达不到客户的要求,不知道各位大大有没有办法实现这样的需求,如果一条sql文不能实现,多条也行。A表 B表
字段a 字段b 字段c...字段n 字段i 字段h
1 2 3 4 1 aaa
5 6 e f 2 bbb
h g 8 f 3 cccc
t t q 9 4 dddd
t h q n 9 pppp想得到的结果集:字段a 字段b 字段c...字段n 字段h
1 2 3 4 (aaa,bbb,cccc,dddd)
5 6 e f
h g 8 f
t t q 9 pppp
字段a 字段b 字段c...字段n 字段i 字段h
1 2 3 4 1 aaa
5 6 e f 2 bbb
h g 8 f 3 cccc
t t q 9 4 dddd
t h q n 9 pppp想得到的结果集:字段a 字段b 字段c...字段n 字段h
1 2 3 4 (aaa,bbb,cccc,dddd)
t t q 9 pppp
我的电子邮件是:[email protected]