2
回答
mysql视图不能使用子查询,把子查询做成视图再查询但是视图里的order DESC却不起作用


公司的流程系统需要做查询,几张表分开的,想做成一张视图来用hibernate来做一个查询页面,根据条件查询出结果,但是在做视图的时候就出现难题,我用的sql语句创建视图的时候提示出错,查询了才知道是MySql视图不支持子查询,sql如下:

SELECT 
    `lsi`.`code` AS `CODE`,
    `lsi`.`name` AS `zxmc`,
    `lsi`.`zhuanxiantype` AS `zxlx`,
    `lsi`.`user_bandwidth` AS `dk`,
    `tu`.`XM` AS `wljl`,
    `lsi`.`customer_manager_name` AS `khjl`,
    `lsi`.`construction_id` AS `construction_id`,
    `lsi`.`creator` AS `jdr`,
    `lsi`.`created_date` AS `jdsj`,
    `pd`.`cjsj` AS `fqjssj`,
    `cp`.`bzmc` AS `dqhj`,
    `cp`.`cjsj` AS `dqhjkssj`,
    `cp`.`clr` AS `dqclr`
FROM
    line_some_info lsi
        LEFT JOIN
    paidanriqi pd ON lsi.line_id = pd.line_id
        LEFT JOIN
    t_user tu ON lsi.net_manager = tu.BH
        LEFT JOIN
    (SELECT 
        *
    FROM
        (SELECT 
        lbi.line_id, wp.bzmc, rask.cjsj, tu.XM AS clr
    FROM
        workflow_rask_list rask
    JOIN t_user tu ON rask.CLR = tu.BH
    JOIN Prosess_Sample ps ON rask.bzslbh = ps.bzslbh
    JOIN workflow_prosess wp ON ps.BZBH = wp.BZBH
    JOIN Workflow_Prosess_Sample wps ON ps.lcslbh = wps.lcslbh
    JOIN line_build_info lbi ON wps.item_Id = lbi.line_id
    ORDER BY rask.cjsj DESC) ff
    GROUP BY ff.line_id) cp ON lsi.line_id = cp.line_id




我试着将子查询(25行到34行)做成视图1,再把22行到35行cp位置做成视图2,再做1行到35行视图3.但是问题就出来了。

这个查询主要是想查询rask里面多条一样的line_id一致,但是创建时间 cjsj  最新的一条,单独执行这个sql是得到正确结果的。但是一旦做成视图1、2、3的嵌套,在视图1和视图2结合的时候,好像order by DESC  和group by   line_id 就不能结合,得到的结果也不是cjsj的倒序。

我是初学者,不知道大家能不能看懂我的问题,求各位大神解答,我该怎么得到正确的结果的视图呢



举报
折木
发帖于3年前 2回/2K+阅
顶部