duan010167787 2014-08-20 09:34
浏览 9
已采纳

输出表中的所有数据并显示哪些行属于用户

I have a roles table which contains various user roles.

A pivot tables joins this to my users table.

users
id | name

roles
id | title

user_role
user_id | role_id

I would like to display all roles that exist and pre tick the ones that belong to a specific user.

How would I go about this, I take it I cannot do this in mySQL?

I was considering getting all roles with one query, then with another query get all roles that belong to a specific user.

Then loop through all roles and if there is a match with the specific users roles, output a checked box instead of an unchecked one.

Is there a better way?

  • 写回答

2条回答 默认 最新

  • doujinge9648 2014-08-20 10:03
    关注

    Something like

    SELECT R.id as role_id,
           R.title as role_title,
           UR.user_id as user_id,
           U.name as user_name
      FROM Roles R
      LEFT JOIN user_role UR
             ON UR.role_id = R.id
            AND UR.user_id = :myuserid
      LEFT JOIN users U
             ON U.id = UR.user_id
    

    should return a complete list of roles, with either a NULL or the user id in the user column to indicate any roles that the user has been granted (user identified by id as :myuserid)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起