需要一个Mysql查询来按照我的意愿显示行

时间:2017-06-21 15:11:22

标签: mysql

我正在撰写一篇文章发布应用..

用户可以发布文章..文章将作为一行插入,在帖子表格中有唯一的ID ..

该帖子只应向其他用户显示一次......并且不会向已发布的用户显示...

查看的帖子存储在单独的表中,其中包含帖子ID和查看过的用户号码。

我使用查询..

SELECT Posts.NAME, Posts.TITLE, Posts.NUMBER    
FROM Posts LEFT JOIN Viewed 
ON Posts.ID = Viewed.POSTID AND Posts.NUMBER != Viewed.NUMBER
WHERE Viewed.POSTID IS NULL AND Posts.NUMBER != '".$number"'

此查询仅显示第一个查看者的帖子...而不是其他人!

请帮助!

1 个答案:

答案 0 :(得分:0)

您必须使用EXISTS关键字查看给定帖子和用户是否有查看条目。看起来应该是这样的:

SELECT
    Posts.NAME,
    Posts.TITLE,
    Posts.NUMBER
FROM
    Posts
WHERE NOT EXISTS (
    SELECT
        1
    FROM
        Viewed
    WHERE
        Viewed.USERID = ? AND
        Viewed.POSTID = Posts.ID
)