1

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

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

$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用户友谊表的列中,则结果不返回它们,这有意义吗?

任何帮助将不胜感激。

4

1 回答 1

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
于 2013-05-31T23:08:12.743 回答