在这种情况下,我有三个主表:类别、板和权限。类别和板表是不言自明的。权限表包含的行将确定用户是否被允许阅读板内的线程、在板内创建线程、回复板内的线程,或管理板内的线程和帖子。在表中,用户对每个操作的能力由 0(关闭,或假)或 1(打开,或真)表示。这些基于用户所属的成员组。
我想做的是创建一个选择类别的查询。它应该只选择具有用户可以阅读的板的类别。基本上,如果一个类别没有用户可以阅读的任何板,则不会被选中。如果该类别甚至只有一个用户可以阅读的板,它将被选中。
下一个查询是选择用户可以阅读的特定类别中的板。基于与上述相同的原则。显示一个用户无法阅读的板子,以便在他们已经单击链接后才能找到它的意义何在?
我从来没有真正自己创建过这样复杂的查询,所以我什至不知道从哪里开始。如果您能帮助我,我将不胜感激。
更新
所以,我决定试一试,这就是我想出的:
$查询 = " 选择 b.category_id,b.board_id,b.position, p.group_id、p.board_id、p.read FROM forum_boards AS b INNER JOIN forum_permissions AS p ON ( p.board_id = b.board_id, p.group_id = 1, p.read = 1 ) WHERE b.category_id = ".$category_id." 按 b.position 排序";
请注意,这是获取用户可以阅读的特定类别中的板的查询。它目前正在返回下面的错误,我不知道为什么。
操作数应包含 1 列