我尝试构建MySql查询以根据以下内容生成结果:
Table Permissions
user_id blog_id
=========================
1 1
1 2
1 3
2 2
3 1
Table Blog
id name
=========================
1 First Blog
2 Second Blog
3 Third Blog
4 Fourth Blog
我需要从Blog表中选择所有记录,并根据登录的用户ID显示它,如:
$user_id = $_SESSION['user_id];
表权限包含允许查看博客表结果的每个用户的访问权限。
类似于:
"SELECT * FROM Blog WHERE id IN()"
但我不确定如何访问权限表以在IN()中使用它。
因此,例如,如果ID为1的用户已登录,则此用户应该能够看到匹配ID为1,2和3的博客。
答案 0 :(得分:1)
您可以使用join或in()子查询。
select b.* from blogs b
inner join permissions p
on b.id=p.blog_id
where p.user_id=...
答案 1 :(得分:0)
试试这个:
SELECT * FROM Blog INNER JOIN Permissions ON Permissions.blog_id = Blog.id
显示所有用户。
此处的工作代码:http://sqlfiddle.com/#!9/aa3e9/14
您可以使用:
SELECT * FROM Blog INNER JOIN Permissions ON Permissions.blog_id = Blog.id
WHERE Permissions.user_id = 'user_id number'
获取特定用户。