开心一笑: 会买水果的狗狗

    关注微信公众号

    QQ群:831045818

    app下载

    当前位置:首页> 数据库使用 > 技术文档 > 正文
    mysql 多表 多个条件 查询
    发布时间:2017-06-06 17:35:04.0 浏览次数:

    mysql 查询关键字

    SELECT  类名  FROM  主表名 INNER JOIN   子表名1 ON  主表=次表 同样的内容  WHERE 查询条件


    多表请用 INNER JOIN连接 且加 同样条件内容

    SELECT  类名  FROM  主表名 INNER JOIN   子表名1 INNER JOIN   子表名2 ON  主表=次表1同样的内容   and   主表=次表2 同样的内容  WHERE 查询条件


    如果没有 主表=次表2 同样的内容 表示多个条件 不同内容

    如  a.id=b.id  表示只取  a 表与b ID 相同的内容


    2个表查询代码 

    SELECT 

        a.content_id, b.content_id, b.title, a.`status` 

    FROM

        jc_content a INNER JOIN  jc_content_ext b 

    ON

      a.content_id=b.content_id  

    WHERE 

        a.`status`=2 AND b.title LIKE CONCAT('%','南陵','%')


    3个或更多查询代码

    SELECT 

        a.channel_id,a.content_id,a.status,b.title,c.shop_price   

    FROM 

        jc_content a  INNER JOIN  jc_content_ext b INNER JOIN w_shop_content_item c ON a.content_id=b.content_id AND a.content_id=c.cid   

    WHERE 

        a.`status`=2 AND b.title LIKE CONCAT('%火龙果%')

     GROUP BY channel_id

    代码延伸

    去重复 GROUP BY  重复内容的类名

    比如 表3 w_shop_content_item  以cid有多个内容存储  可以去掉重复 只保留第一行 数据见图

    1.jpg

    2.jpg


    代码分析


    第一部分:

    SELECT开始 a.content_id, b.content_id, b.title, a.`status`   到 FROM 前

    表示 jc_content a 的表 content_id

            jc_content a 的表 status

            jc_content_ext b 的表content_id


    第二部分:

    FROM jc_content a INNER JOIN  jc_content_ext b ON a.content_id=b.content_id  WHERE

    jc_content a 主表   连接 次表 jc_content_ext b   


    a表的content_id 与 b表的content_id一样的内容 


    第三部分

    WHERE a.`status`=2 AND b.title LIKE CONCAT('%南陵%')


    查询条件满足 a 表的 status =2  和 模糊查询 b表的 titlt 含有 南陵的字符

    CONCAT('%南陵%')  可以防止 mysql 注入




    注: 添加类名 可以增加查询速度  一万个数据中 快了10倍

    关注"都市百货" 了解南陵

    微信咨询wanglf2r(不拉群 发广告者勿加)

    0
    0
    上一篇:追公交~你会怎么说..... 上一篇:南陵县商品房北泰御景湾预售许可公告

    评论已有0

    提交评论

    热门评论

    南陵新闻
    公示公告
    常用查询
    风光南陵
    走出南陵
    友情链接