MySQL查询与IF

穆古尔·昂古里亚努(Mugur Ungureanu)

我有两张桌子

用户数

  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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章