我有两个表a和b如下实现一个简单的阻止列表,用户可以阻止其他用户......
+ ------------ + -------------- ------ + +
|名称|电话|用户ID |
+ ------------ + -------------- ------ + +
|萨西先生| 01225 708225 | 1 |
|布朗小姐| 01225 899360 | 2 |
|布莱克先生| 01380 724040 | 3 |
+ ------------ + -------------- ------ + +
+ ------------ + -------------- +
| blockedbyid | blockedid |
+ ------------ + -------------- +
| 1 | 2 |
| 2 | 3 |
| 1 | 3 |
+ ------------ + -------------- +
“blockedbyid”是在“blockedid”中阻止用户的用户的ID。
我需要加入这两个表并从表A中获取所有记录,以便结果包含所有未被特定用户阻止的用户[即blockedbyid ='XXX'] ..你们可以提供SQL查询吗我可以作为记录集获取记录???我不想获取两个不同的行集并在php中进行比较....
答案 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解决方案似乎更好。