如果两个表中都不存在记录,则从数据库返回记录? PDO

时间:2013-05-31 23:02:25

标签: php mysql pdo

我有一个问题,我似乎无法单独用Google搜索来解决这个问题!

我试图从我的表中返回所有用户,不包括当前登录的会话用户,我这样做...

$stmt = $conn->prepare('SELECT *
    FROM users 
    WHERE user_id <> ? 
    AND credits_offered <= credits_bank');
$stmt->bindParam(1, $uid, PDO::PARAM_INT);
$stmt->execute(); 

我有另一张表,但在此表中名为user_friendships有3列,

id | user_id | user_followed_id

在我的查询中,我想以某种方式添加一个where子句,说如果返回的任何用户存在于用户友谊表的user_followed_id列中,那么就不会返回它们,这有道理吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

以下是使用OUTER JOIN的一种方式:

SELECT DISTINCT u.*
FROM users u
    LEFT JOIN user_friendships uf ON u.user_id = uf.user_followed_id
WHERE u.user_id <> ? 
   AND u.credits_offered <= credits_bank
   AND uf.user_followed_id IS NULL