SQL语句查询问题
请教,我执行查询(SELECT * FROM dr_1_whdt AS a, dr_1_whdt_flag AS b WHERE a.id = b.id AND b.flag=9) UNION
(SELECT * FROM dr_1_fybl AS a, dr_1_fybl_flag AS b WHERE a.id = b.id AND b.flag=9) UNION
(SELECT * FROM dr_1_fyxy AS a, dr_1_fyxy_flag AS b WHERE a.id = b.id AND b.flag=9)
ORDER BY updatetime DESC LIMIT 2'
可以正确执行,为什么再多加几个表进去就不行了
(SELECT * FROM dr_1_whdt AS a, dr_1_whdt_flag AS b WHERE a.id = b.id AND b.flag=9) UNION
(SELECT * FROM dr_1_fybl AS a, dr_1_fybl_flag AS b WHERE a.id = b.id AND b.flag=9) UNION
(SELECT * FROM dr_1_fyxy AS a, dr_1_fyxy_flag AS b WHERE a.id = b.id AND b.flag=9) UNION
(SELECT * FROM dr_1_zhy AS a, dr_1_zhy_flag AS b WHERE a.id = b.id AND b.flag=9) UNION
(SELECT * FROM dr_1_whmc AS a, dr_1_whmc_flag AS b WHERE a.id = b.id AND b.flag=9) UNION
(SELECT * FROM dr_1_whdl AS a, dr_1_whdl_flag AS b WHERE a.id = b.id AND b.flag=9) UNION
(SELECT * FROM dr_1_mjmz AS a, dr_1_mjmz_flag AS b WHERE a.id = b.id AND b.flag=9)
ORDER BY updatetime DESC LIMIT 2'
是语句长度问题,还是UNION个数问题,如何解决
搞这么复杂我也不想,CMS系统限制,在模版里只能这么写...表结构和模板机制是没法改动的 上面两个语句在mysql里是可以执行的 长度 个数都没有限制, 是语法问题, 在CI中UNION要求必须所有表字段一致
(SELECT a.title, a.url, a.description, a.updatetime FROM dr_1_whdt AS a, dr_1_whdt_flag AS b WHERE a.id = b.id AND b.flag=9) UNION
(SELECT a.title, a.url, a.description, a.updatetime FROM dr_1_fybl AS a, dr_1_fybl_flag AS b WHERE a.id = b.id AND b.flag=9) UNION
(SELECT a.title, a.url, a.description, a.updatetime FROM dr_1_fyxy AS a, dr_1_fyxy_flag AS b WHERE a.id = b.id AND b.flag=9) UNION
(SELECT a.title, a.url, a.description, a.updatetime FROM dr_1_zhy AS a, dr_1_zhy_flag AS b WHERE a.id = b.id AND b.flag=9) UNION
(SELECT a.title, a.url, a.description, a.updatetime FROM dr_1_whmc AS a, dr_1_whmc_flag AS b WHERE a.id = b.id AND b.flag=9) UNION
(SELECT a.title, a.url, a.description, a.updatetime FROM dr_1_whdl AS a, dr_1_whdl_flag AS b WHERE a.id = b.id AND b.flag=9) UNION
(SELECT a.title, a.url, a.description, a.updatetime FROM dr_1_mjmz AS a, dr_1_mjmz_flag AS b WHERE a.id = b.id AND b.flag=9)
ORDER BY updatetime DESC LIMIT 2
这样就通过了,也许是mysql严格模式问题
页:
[1]