• 技术文章 >后端开发 >php教程

    继续请问mysql查询语句:多表联合查询,怎么限定右侧的表如果有对应记录则加入特定的where限制或者limit限制,反之则不加限制

    2016-06-13 12:06:30原创833

    继续请教mysql查询语句:多表联合查询,如何限定右侧的表如果有对应记录则加入特定的where限制或者limit限制,反之则不加限制
    如题

    6表联合查询,目前用的还是a left join b left join c left join d left join e left join f这样的

    为了保证 a表中的每一条记录 在bcedf表中最多只找到一条对应 要加一些条件

    但是加了诸如where f.aaa in ( 0 ,1 ,2 ,3)这样的限制后, 查询的结果全部是 有f表中有对应记录的

    希望能把f表中没有对应记录的也查出来
    该怎么修改语句呢?


    另外在问另一个问题 假设就算加了这样的条件,becdf表中还是有多条,能否在这一条sql语句中限定比如f表只查最新的一条,以防止a表记录在结果中重复出现
    ------解决思路----------------------
    一个结果需要通过6各表连接查询,应该说是你的表设计有问题
    可先按关联键形成几个过渡表,以减少表间的影响
    ------解决思路----------------------
    6表查询,这个生成多大的笛卡尔积啊,反正我是卡死了
    ------解决思路----------------------
    1、我上面已经讲了,查询时先产生过渡表,再对过渡表查询
    2、通过视图将原来不合理的设计变成合理的设计,查询对视图进行

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp left join where limit
    上一篇:thinkphp 文字 罗选 字段 都在一个表里面 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 一文详解PHP用流方式实现下载文件(附代码示例)• PHP反序列化入门总结(小白必看)• PHP原生类的总结分享• 聊聊PHP escapeshellarg函数使用的中文问题• 分享PHP函数使用小工具(附代码示例)
    1/1

    PHP中文网