复合查询问题,请高手帮忙!(帮顶有分)

nccxl 2006-05-24 11:53:44
有3张表
A表:dwbh单位编号 dwmc单位名称 ……
B表:dwbh单位编号 rybh人员编号 rymc人员名称……
C表:dwbh单位编号 rybh人员编号 type动作类型 nr具体做的事的内容……

我现在的需求是:

1、查询“单位名称”LIKE “XX”时查出 dwmc,rymc,type,nr 的内容(表主要内容在C表中,A表中找dwmc);

2、查询“人员名称”LIKE “XX”时查出 dwmc,rymc,type,nr 的内容(表主要内容在C表中,B表中找人员名称);

3、最复杂的是这个,查询“单位名称”LIKE “XX”或者“人员名称”LIKE “XX”并且 “动作类型”LIKE “XX”时查出 dwmc,rymc,type,nr 的内容(表主要内容在C表中,A,B,C表都有字段成为条件);

我想的头都大了,请高手帮忙指点一下。
...全文
169 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
itblog 2006-05-24
  • 打赏
  • 举报
回复
:)
xeqtr1982 2006-05-24
  • 打赏
  • 举报
回复
:)
sun30 2006-05-24
  • 打赏
  • 举报
回复
我不知道你的表结构.如果结构允许的话.你可以用视图!
先建立外键.把三个表建立成一张表.直接查!
liangpei2008 2006-05-24
  • 打赏
  • 举报
回复
学习!
子陌红尘 2006-05-24
  • 打赏
  • 举报
回复
1、
select
a.dwmc,b.rymc,c.type,c.nr
from
A表 a,B表 b,C表 c
where
a.dwbh=b.dwbh and b.rybh=c.rybh
and
a.dwmc like '%XX%'

2、
select
a.dwmc,b.rymc,c.type,c.nr
from
A表 a,B表 b,C表 c
where
a.dwbh=b.dwbh and b.rybh=c.rybh
and
b.rymc like '%XX%'


3、
select
a.dwmc,b.rymc,c.type,c.nr
from
A表 a,B表 b,C表 c
where
a.dwbh=b.dwbh and b.rybh=c.rybh
and
a.dwmc like '%XX%'
and
b.rymc like '%XX%'
and
c.type like '%XX%'
子陌红尘 2006-05-24
  • 打赏
  • 举报
回复
1、
select
a.dwmc,b.rymc,c.type,c.nr
from
A表 a,B表 b,C表 c
where
a.dwbh=b.dwbh and b.rybh=c.rybh
and
a.dwmc like '%XX%'

2、
select
a.dwmc,b.rymc,c.type,c.nr
from
A表 a,B表 b,C表 c
where
a.dwbh=b.dwbh and b.rybh=c.rybh
and
b.rymc like '%XX%'


3、
select
a.dwmc,b.rymc,c.type,c.nr
from
A表 a,B表 b,C表 c
where
a.dwbh=b.dwbh and b.rybh=c.rybh
and
a.dwmc like '%XX%'
and
b.rymc like '%XX%'
and
c.type like '%XX%'
nccxl 2006-05-24
  • 打赏
  • 举报
回复
libin_ftsafe(子陌红尘) 你太伟大了!!!
子陌红尘 2006-05-24
  • 打赏
  • 举报
回复
1、
select
a.dwmc,b.rymc,c.type,c.nr
from
A表 a
left join
B表 b
on
a.dwbh=b.dwbh
left join
C表 c
on
a.dwbh=c.dwbh and b.rybh=c.rybh
where
a.dwmc like '%XX%'

2、
select
a.dwmc,b.rymc,c.type,c.nr
from
A表 a
left join
B表 b
on
a.dwbh=b.dwbh
left join
C表 c
on
a.dwbh=c.dwbh and b.rybh=c.rybh
where
b.rymc like '%XX%'


3、
select
a.dwmc,b.rymc,c.type,c.nr
from
A表 a
left join
B表 b
on
a.dwbh=b.dwbh
left join
C表 c
on
a.dwbh=c.dwbh and b.rybh=c.rybh
where
a.dwmc like '%XX%'
and
b.rymc like '%XX%'
and
c.type like '%XX%'
nccxl 2006-05-24
  • 打赏
  • 举报
回复
因为做动态查询,好象做成视图不是很方便。
nccxl 2006-05-24
  • 打赏
  • 举报
回复
出现一个问题:
当表C中没有rybh时,我希望显示rymc为空。可以我用 a.dwbh=b.dwbh and a.dwbh=a.dwbh 做WHERE条件时,查出很多没用的信息,甚至比表C原有的数据还多。
lovexll 2006-05-24
  • 打赏
  • 举报
回复
:-P
:-)
其实用视图做会更简单的
lxzm1001 2006-05-24
  • 打赏
  • 举报
回复
嘿嘿
简单dian 2006-05-24
  • 打赏
  • 举报
回复
顶一下!!!
nccxl 2006-05-24
  • 打赏
  • 举报
回复
谢谢libin_ftsafe(子陌红尘),和楼上帮顶的各位。我试一下,回头来结帖。

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧