我有两张桌子
用户数
Id user grade access_level
1 Alice 1 1
2 Charles 3 3
3 Ben 2 2
班级
Id name grade
1 biology 1
2 math 2
3 geography 2
我可以阅读$username = $_SESSION['MM_Username']
,我想为每个登录用户选择一个类列表,具体取决于他们的access_level。对于access_level => 3,用户可以查看所有课程,对于access_level <3,用户只能查看与他/她同等级的课程。所以:对于Charles,使用access_level = 3,我想要这个结果
Id name grade
1 biology 1
2 math 2
3 geography 2
对于Alice,access_level = 1,等级= 1,我想要这个结果
Id name grade
1 biology 1
对于Ben,access_level = 2,等级= 2,我想要这个结果
Id name grade
1 math 2
2 geography 2
他们具有根据其在学校中的职位而设置的access_levels。假设查尔斯(Charles)是教授,爱丽丝(Alice)和本(Ben)是学生。学生只能看到他们的课程,但老师可以看到所有内容。
您可以使用带有OR的INNER JOIN:
SELECT Class.*
FROM
Class INNER JOIN Users
ON Class.grade = Users.grade
OR Users.access_level>=3
WHERE
User='username';
请看这里的小提琴。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句