“user”表列名称是“id”、“username”、“name_surname”、“password”。
“friends”表列名称是“user_id”、“friends”、“requests”、“bans”。
“wall”表列名称是“id”、“post”、“access”、“date”、“owner_id”、“poster_id”。
当用户访问他的帐户页面时,他正在像 facebook 一样写下“他的想法”,他可以选择谁可以阅读该帖子。但是当他要阅读墙的帖子时,他一定不能阅读所有帖子。他只有在他的 id 位于海报的朋友栏时才能阅读。
例如,我的 id 是 3,poster id 是 5,friends 字段将值保存为 jason 数据。
在“user”表中,id=>3,username=>user1,name=>John,password=>1234
在“friends”表中,user_id=>5,friends=>[1,2,3,4,7, 8], requests=>[11,12,13], bans=>[31,32,33]
在“wall”表中,id=>1,posts=>我的想法,access=>friends_only,date= >2013-04-25 19:23:00, owner_id=>7, poster_id=5
按照上面的信息,我是id=3的朋友,id=5的用户,所以可以看id=1的墙贴。在所有的胃痛中,我没有设法编写sql查询。这是我荒谬的询问。
"SELECT w.*, u.* FROM wall AS w"
. " LEFT JOIN user AS u ON u.id=w.poster_id"
. " WHERE w.access='everybody'"
. " OR (SELECT * FROM wall WHERE w.access='friends_only'"
. " IN (SELECT * FROM friends WHERE friends contains 3) )"
. " ORDER BY w.id DESC LIMIT 0,5"
请你能帮我写下正确的查询吗?亲切的问候。