如果ID被阻止,则从MySQL查询中排除行

时间:2013-05-23 21:39:50

标签: php mysql

我确定这是MySQL 101,如果答案很简单,我道歉,但我有点卡住,所以我在这里。

我有一个用户表,名为'site_members',其中包含各种字段,但重要的是,每个字段都有唯一的ID。

我还有一个非常简单的双字段表,名为“blocked_members”,其中包含已被登录用户阻止的用户的id,该用户只需设置为存储被阻止人员的用户ID,以及阻止者的用户ID:

Field 1 | Blocked
Field 2 | Blocker

在“site_members”表上运行查询之前,我在“blocked_members”表上运行查询,以查明当前登录用户是否出现在任一列中:

$sql = "SELECT * FROM blocked_members WHERE blocker = '$loggedin_id'  OR blocked = '$loggedin_id' ";

接下来我需要做的是从登录用户ID出现的每一行获取相应的用户ID,并从'site_members'表中的主查询中排除那些(那些),但我不知道我是怎么做的会发生什么事吗?

任何人都可以帮助或指出我更清洁的方向吗?

2 个答案:

答案 0 :(得分:0)

你可以做内部查询......你可以做

... WHERE blocker NOT IN (SELECT bloker_id FROM ...) 

答案 1 :(得分:0)

您使用子选择。

SELECT * FROM whatever WHERE posting_user_id NOT IN
(SELECT blockedid FROM blocklist WHERE blockerid = <<current user viewing the page>>)

插入应用黑名单的用户的ID。