2016-02-11 20 views
1
MySQL的子查詢

我試圖建立一個MySQL查詢基於以下產生的結果:PHP,兩個表

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 

我需要從博客表中的所有記錄,並根據記錄在顯示它用戶標識如:

$user_id = $_SESSION['user_id]; 

表權限包含允許每個用戶查看來自博客表的結果的訪問權限。

因此,像:

"SELECT * FROM Blog WHERE id IN()" 

,但我不知道如何訪問權限表中才能使用它()。

因此,例如,如果與ID 1用戶登錄時,該用戶應該能夠看到ID匹配的1,2和3

+5

[SQL連接的可視化解釋](http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/) –

回答

1

您可以使用一個連接,或者在()子查詢博客。

select b.* from blogs b 
inner join permissions p 
on b.id=p.blog_id 
where p.user_id=... 
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' 

爲了得到一個特定的用戶。