我有两个表通过id连接在一起,一个是“submit_moderate”,一个是“submit_post”
“submit_moderate”表格如下所示
id moderated_by post
1 James 60
2 Alice 32
3 Tim 18
4 Michael 60
我使用简单查询根据“submit_moderate”表从“submit_post”表中获取数据。
$get_posts = mysql_query("SELECT * FROM submit_moderate WHERE moderated_by!='$user'");
$user
是签到的人。
现在我的问题是当我运行此查询时,用户'Michael'将检索此
1 James 60
2 Alice 32
3 Tim 18
现在技术上这是正确的,但是我不想检索第一行,因为60与Michael以及James有关。基本上我不想检索该值'60'。
我知道为什么会这样,但我无法弄清楚如何做到这一点。我感谢任何提示或建议。
答案 0 :(得分:3)
SELECT DISTINCT post
FROM submit_moderate
WHERE post NOT IN (SELECT post
FROM submit_moderate
WHERE moderated_by = 'Michael')
PS:不确定,但在某些情况下,可能值得将嵌套查询的select-part更改为SELECT DISTINCT post
答案 1 :(得分:1)
假设$ user ='Michael';
如果你真的不想要第一排用户,就像你说詹姆斯在帖子中与迈克尔匹配一样 然后去
$ post = mysql_query_first(“SELECT post FROM submit_moderate WHERE moderated_by ='$ user'”);
$ get_posts = mysql_query(“SELECT * FROM submit_moderate WHERE moderated_by!='$ user'and post!='$ post');
或
$ get_posts = mysql_query(“SELECT * FROM submit_moderate WHERE post NOT IN(SELECT post FROM submit_moderate WHERE moderated_by ='Michael')and moderated_by!='Michael'”);