• mysql 多对多查询


    SELECT * FROM test_user LIMIT 3; #得出(1,2,3)
    # user和 role是多对多的关系
    # 多个user对应多个role
    # 需求是根据条件查出user列表,并且里面携带了自己所有的role
    # 本来思路是在user表里面查出所有user
    # 然后通过for循环,在循环里面用两个left join来查询每个人的所有角色
    # 但是在for循环里连表速度会有损耗
    
    # group_concat()
    
    # 1、功能:将group by产生的同一个分组中的值连接起来,返回一个字符串结果。
    
    # 2、语法:group_concat( [distinct] 要连接的字段 [order by 排序字段 asc/desc ] [separator '分隔符'] )
    SELECT u.*,GROUP_CONCAT(r.name) as names FROM  test_user u LEFT JOIN test_user_role ur on ur.user_id=u.id 
    LEFT JOIN test_role r on r.id=ur.role_id WHERE u.id in (1,2,3) group by u.id # 通过查出的结果group出结果集
  • 相关阅读:
    SysRq组合键是一组"魔术组合键"
    iptables FTP脚本
    (转)SSH的端口转发
    进制转换
    指定的参数已超出有效值的范围
    静态类
    接口
    快捷键,移到最上层
    gitbook
    nginx服务无法停止(Windows)
  • 原文地址:https://www.cnblogs.com/cl94/p/12566889.html
Copyright © 2020-2023  润新知