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怎么会不冲突?
在线等

解决方案 »

  1.   


    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 这样的
      

  2.   

    那e.bdsbh || e.xlbh || e.tqbh是tq_cx中的字段而 a.bdsbh || a.tqbh也是tq_cx中的字段 他们两个怎么会相等呢??
      

  3.   

    e.xlbh  也有可能是空值啊~
      

  4.   

    这个e.xlbh 不是空值 那是怎么回事啊??
      

  5.   

    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都能运行出来
    是怎么回事啊???求解答
      

  6.   

    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作为连接条件。
    ---表中嵌入表子查询,这个不会冲突的。