一个复杂的select语句求详细讲解 在线等

feng1988625 2011-07-01 10:17:15
select a.bdsbh||a.xlbh||a.tqbh,tqmc,byqlxmc,null from tq_cx a left join
(select (e.bdsbh||e.xlbh||e.tqbh)xlid,byqlxmc from da_byqsb_dab c join
tq_cx e on e.tqid=c.yhid join sys_byqxhcsb d on c.byqcs_lxbh=d.byqlxbh)b on a.bdsbh||a.tqbh=b.xlid
这个语句我有点不明白 请高手解答
(select (e.bdsbh||e.xlbh||e.tqbh)xlid,byqlxmc from da_byqsb_dab c join
tq_cx e on e.tqid=c.yhid join sys_byqxhcsb d on c.byqcs_lxbh=d.byqlxbh)b这个是指的一个临时表吗?
b.xlid是不是指的(e.bdsbh||e.xlbh||e.tqbh)xlid这个字段啊?如果是的话那么
a.bdsbh||a.tqbh=b.xlid又是什么意思啊 ??
还有tq_cx a和tq_cx e怎么会不冲突?
在线等
...全文
111 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotel-刘志东 2011-07-04
  • 打赏
  • 举报
回复
select a.bdsbh||a.xlbh||a.tqbh,tqmc,byqlxmc,null from tq_cx a left join
(select (e.bdsbh||e.xlbh||e.tqbh)xlid,byqlxmc from da_byqsb_dab c join
tq_cx e on e.tqid=c.yhid join sys_byqxhcsb d on c.byqcs_lxbh=d.byqlxbh)b on a.bdsbh||a.tqbh=b.xlid
--很好理解把a.bdsbh||a.xlbh||a.tqbh合并成一列,表tq_cx与子查询表b做左连接查询

(select (e.bdsbh||e.xlbh||e.tqbh)xlid,byqlxmc from da_byqsb_dab c join
tq_cx e on e.tqid=c.yhid join sys_byqxhcsb d on c.byqcs_lxbh=d.byqlxbh)b这个是指的一个临时表吗?
b.xlid是不是指的(e.bdsbh||e.xlbh||e.tqbh)xlid这个字段啊?如果是的话那么
a.bdsbh||a.tqbh=b.xlid又是什么意思啊 ??
还有tq_cx a和tq_cx e怎么会不冲突?
在线等
---b这个可以做临时表这么理解
---a.bdsbh||a.tqbh=b.xlid 等号左边是两个字段合并做与右边b.xlid作为连接条件。
---表中嵌入表子查询,这个不会冲突的。
ICE-word 2011-07-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 feng1988625 的回复:]
select a.bdsbh||a.xlbh||a.tqbh,tqmc,byqlxmc,null from tq_cx a left join
(select (e.bdsbh||e.xlbh||e.tqbh)xlid,byqlxmc from da_byqsb_dab c join
tq_cx e on e.tqid=c.yhid join sys_byqxhcsb d on c.by……
[/Quote]
运行肯定是可以运行出来,但是也有可能的出来的是空值。
feng1988625 2011-07-04
  • 打赏
  • 举报
回复
select a.bdsbh||a.xlbh||a.tqbh,tqmc,byqlxmc,null from tq_cx a left join
(select (e.bdsbh||e.xlbh||e.tqbh)xlid,byqlxmc from da_byqsb_dab c join
tq_cx e on e.tqid=c.yhid join sys_byqxhcsb d on c.byqcs_lxbh=d.byqlxbh)b on a.bdsbh||a.tqbh=b.xlid
这个中的a.bdsbh||a.tqbh=b.xlid
换成a.bdsbh=b.xlid 或a.tqbh=b.xlid或a.xlbh=b.xlid都能运行出来
是怎么回事啊???求解答
feng1988625 2011-07-01
  • 打赏
  • 举报
回复
这个e.xlbh 不是空值 那是怎么回事啊??
horizonlyhw 2011-07-01
  • 打赏
  • 举报
回复
e.xlbh 也有可能是空值啊~
feng1988625 2011-07-01
  • 打赏
  • 举报
回复
那e.bdsbh || e.xlbh || e.tqbh是tq_cx中的字段而 a.bdsbh || a.tqbh也是tq_cx中的字段 他们两个怎么会相等呢??
horizonlyhw 2011-07-01
  • 打赏
  • 举报
回复

select a.bdsbh || a.xlbh || a.tqbh, tqmc, byqlxmc, null
from tq_cx a
left join (select (e.bdsbh || e.xlbh || e.tqbh) xlid, byqlxmc
from da_byqsb_dab c
join tq_cx e on e.tqid = c.yhid
join sys_byqxhcsb d on c.byqcs_lxbh = d.byqlxbh) b on a.bdsbh ||
a.tqbh =
b.xlid



(select (e.bdsbh||e.xlbh||e.tqbh)xlid,byqlxmc from da_byqsb_dab c join
tq_cx e on e.tqid=c.yhid join sys_byqxhcsb d on c.byqcs_lxbh=d.byqlxbh)b这个是指的一个临时表吗?

A:可以这么认为

b.xlid是不是指的(e.bdsbh||e.xlbh||e.tqbh)xlid这个字段啊?

A:是这个字段


如果是的话那么a.bdsbh||a.tqbh=b.xlid又是什么意思啊 ??

A:这个和语法没关系 是逻辑问题,也就是 (e.bdsbh || e.xlbh || e.tqbh) = a.bdsbh || a.tqbh

还有tq_cx a和tq_cx e怎么会不冲突?

A:这个不会冲突。 比如两个人员表自己连接 也通常写成 from emp e1,emp e2 这样的

feng1988625 2011-07-01
  • 打赏
  • 举报
回复
求解答

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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