1

我有两个通过 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 与迈克尔以及詹姆斯相关联。基本上我不想检索那个值'60'。

我知道为什么会这样,但是我不知道该怎么做。我很感激我能得到的任何提示或建议。

4

2 回答 2

3
SELECT DISTINCT post
  FROM submit_moderate
 WHERE post NOT IN (SELECT post
                      FROM submit_moderate
                     WHERE moderated_by = 'Michael')

PS:不确定,但在某些情况下,可能值得将嵌套查询的选择部分更改为SELECT DISTINCT post

于 2012-06-11T04:36:32.827 回答
1

假设 $user = 'Michael';

如果你真的不想要第一行用户,就像你说的那样,詹姆斯与帖子中的迈克尔相匹配,那就去吧

$post = mysql_query_first("SELECT post FROM submit_moderate WHERE modified_by='$user'");

$get_posts = mysql_query("SELECT * FROM submit_moderate WHERE modified_by!='$user' and post!='$post');

或者

$get_posts = mysql_query("SELECT * FROM submit_moderate WHERE post NOT IN (SELECT post FROM submit_moderate WHERE modeded_by = 'Michael') and modified_by != 'Michael' ");

于 2012-06-11T04:48:14.077 回答