繁体   English   中英

从表中获取用户,其中group = group另一个表行,但是我有另一个表行的id

[英]Get users from table where group=group of another table row but i have id of other table row

我的用户表:

在此处输入图片说明

GROUP_PERMISSIONS表

在此处输入图片说明

问题:

我如何才能从组(即等于groups_permissions表的组)中获取所有用户(从users表中获得),但是我具有groups_permissions表中的组的gid

代码:(我已经尝试过(它还具有其他一些功能))

$stmt = $db_con->query("SELECT gp.*, s.*, uu.*, ug.* FROM (SELECT * FROM groups_permissions WHERE gid={$_POST['gp_row_id']}) gp, (SELECT * FROM settings WHERE id='1') s, (SELECT username FROM users ORDER BY id) uu, (SELECT username FROM users WHERE `group`=gp.group_name WHERE gp.gid={$_POST['gp_row_id']}) ug");            
$stmt->execute();
    while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
    /* FROM GROUP_PERMISSIONS TABLE */
        $response['id'] = $row['gid'];
        $response['group'] = $row['group_name'];
        $response['restricted_pages'] = $row['restricted_pages'];
        $response['restricted_permissions'] = $row['restricted_permissions'];
    /* FROM SETTINGS TABLE */
        $response['site_pages'] = $row['site_pages'];
        $response['site_permissions'] = $row['site_permissions'];
    /* FROM USERS TABLE */
        $active_ids[]= $row['username'];
        $userlist = join(",", $active_ids);
        $string = trim($userlist,'"');
        $response['users'] = $string;
    }
    echo json_encode($response);

例如,如果提交表单,我从groups_permissions获取了一个dsf组的行ID 5 (请参见上图),那么我想从users表中获取所有具有dsf组的用户,但是由于我从groups_permissions表中获得了组的id,那么,我不知道该使用什么,但就像Select username from users WHERE group='dsf' from permissions_table but rather select the group by the help of gid

如果我做对了,请选择

"SELECT *
FROM users
INNER JOIN permissions_table ON permissions_table.group_name = users.group
WHERE permissions_table.gid = {$_POST['gp_row_id']}"

我建议将用户组ID而不是用户名保留在用户表中,因为这是关系数据库的正确做法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM