查询实现阻止列表

时间:2010-10-21 13:10:01

标签: php mysql

我有两个表a和b如下实现一个简单的阻止列表,用户可以阻止其他用户......

表A

+ ------------ + -------------- ------ + +

|名称|电话|用户ID |

+ ------------ + -------------- ------ + +

|萨西先生| 01225 708225 | 1 |

|布朗小姐| 01225 899360 | 2 |

|布莱克先生| 01380 724040 | 3 |

+ ------------ + -------------- ------ + +

表B

+ ------------ + -------------- +

| blockedbyid | blockedid |

+ ------------ + -------------- +

| 1 | 2 |

| 2 | 3 |

| 1 | 3 |

+ ------------ + -------------- +

“blockedbyid”是在“blockedid”中阻止用户的用户的ID。

我需要加入这两个表并从表A中获取所有记录,以便结果包含所有未被特定用户阻止的用户[即blockedbyid ='XXX'] ..你们可以提供SQL查询吗我可以作为记录集获取记录???我不想获取两个不同的行集并在php中进行比较....

2 个答案:

答案 0 :(得分:0)

这样的事情应该有效

Parameter :USERID

SELECT * FROM TABLEA WHERE userid NOT IN (SELECT blockedid FROM TABLEB WHERE blockedbyid = :USERID)

答案 1 :(得分:0)

使用联接

SELECT u。* FROM TABLEB b,TABLEA u WHERE b.blockedbyid ='XXX'AND b.blockedid = NULL

它可能会那样工作,试一试。

Roadie57解决方案似乎更好。