MySQL查询执行问题
这是我的表格内容和结构:MySQL查询执行问题,mysql,Mysql,这是我的表格内容和结构: CREATE DATABASE /*!32312 IF NOT EXISTS*/`common` /*!40100 DEFAULT CHARACTER SET utf8 */; CREATE TABLE `apps_names` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_I
CREATE DATABASE /*!32312 IF NOT EXISTS*/`common` /*!40100 DEFAULT CHARACTER SET utf8 */;
CREATE TABLE `apps_names` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
insert into `apps_names`(`id`,`name`) values (1,'calendar'),(2,'conference'),(3,'lunch'),(4,'devices'),(5,'confluence'),(6,'jira'),(7,'newsletter'),(8,'fotbal'),(9,'svu'),(10,'radio'),(11,'meetings'),(12,'benefits'),(13,'common');
CREATE TABLE `apps_roles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_app` int(11) DEFAULT NULL,
`id_role` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;
insert into `apps_roles`(`id`,`id_app`,`id_role`) values (1,11,1),(2,11,2),(3,11,3),(4,11,4),(5,11,5),(6,11,6),(7,12,7),(8,12,8),(9,12,9),(10,12,10),(11,12,11),(12,12,12),(13,12,13),(14,8,2),(15,3,11),(16,4,15),(17,4,11);
CREATE TABLE `roles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;
insert into `roles`(`id`,`name`) values (1,'Angajat'),(2,'Administrator'),(3,'Team-Lead'),(4,'Project-Manager'),(5,'Line-Manager'),(6,'Department-Manager'),(7,'Benefits-Admin'),(8,'Events-Admin'),(9,'Fitnes-Admin'),(10,'Pensions-Admin'),(11,'Super-Admin'),(12,'Swim-Admin'),(13,'Fitness-and-Swim-Admin'),(15,'Sim-Admin');
CREATE TABLE `users_roles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`app_id` int(11) DEFAULT NULL,
`user_id` int(11) DEFAULT NULL,
`role_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
insert into `users_roles`(`id`,`app_id`,`user_id`,`role_id`) values (1,11,1759,2),(2,11,1767,2);
这是我的问题:
更新查询:
SELECT r.id, r.name , role_id, id_role, ur.user_id, ur.app_id ,ap.id_app FROM roles r
INNER JOIN apps_roles ap ON
r.id = ap.id_role
LEFT JOIN users_roles ur
ON ur.role_id = ap.id_role
WHERE (user_id = '1759' OR user_id IS NULL ) AND id_app = '11'
我想提取所有角色名并检查分配给用户的角色id。我还想得到空值。我该怎么做
更新这应该是想要的结果:
在ur.app_id中。在ur.app_id中,我将稍后在php中检查用户在应用程序X上是否有此角色,如果为null,则表示用户X在应用程序xso中没有角色y,有人知道吗?我真的很感激它:DON ur.app\u id=r.id应该是ur.app\u id=ap.id\u app应该不是。你可能会认为你的名字id\u app&&app\u id令人困惑,因为“呃,请再次检查我的帖子,现在根据你的建议,我没有得到空值,正如你在图中所看到的,我到处都得到了数字11。谢谢你试图帮助我,我真的很感激:)JN用过sql小提琴吗?