我有4个MySQL表
文件夹,folder_users,folder_posts,帖子
我需要构建一个查询上面的视图,并根据用户ID返回我可以过滤的数据
文件夹有:
id,userid,title,date
folder_users有:
id,folderid,userid
folder_posts有:
id,folderid,postid
帖子有:
id,userid,media,text,type
目的是向登录用户显示一组文件夹,他们可以访问该文件夹,并显示最新图像(保存在posts表的媒体列中),理想情况下我希望将其转换为MySQL视图并按folder.date
排序我正在努力从这个查询开始,所以任何帮助都会非常棒。谢谢。
*编辑只是想到了一个缺失的元素**
帖子表会有其他类型的帖子,这意味着文件夹中的某些帖子可能没有媒体,所以查询需要补偿这个,即哪里有媒体确保这包含在结果中哪里没有媒体然后不
答案 0 :(得分:1)
SELECT
p.media, f.title
FROM
posts p
INNER JOIN
folder_posts fp
ON
fp.postid=p.id
INNER JOIN
folder_users fu
ON
fu.id=fp.folderid
INNER JOIN
folder f
ON
f.id=fu.folderid AND f.userid='LOGED_USER_ID'
WHERE p.media IS NOT NULL
GROUP BY p.id
ORDER BY f.date