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

标签 php mysql pdo

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

我试图从我的表中返回所有用户,不包括当前登录的 session 用户,我用...来做到这一点

$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_followed_id

在我的查询中,我想以某种方式添加一个 where 子句,说明如果返回的任何用户存在于用户友谊表的 user_followed_id 列中,则不要返回结果,这有意义吗?

如有任何帮助,我们将不胜感激。

最佳答案

这是使用 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

关于php - 如果两个表中都不存在记录,则从数据库返回记录? PDO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16867199/

相关文章:

php - 下一步我应该做什么?

mysql - 如何使用 MySQL 将表预加载到 INNODB 缓冲池中?

mysql - Oracle SQL 触发器更新问题 - 研究/学习

mysql - 具有 date_format 的日期按字母顺序排序

php pdo : get the columns name of a table

php - php中接口(interface)的目的是什么?

php - 如果必须将 AWS_SECRET_KEY 存储在 EBS 环境变量中,AWS Secrets Manager 如何安全地用于 Elastic Beanstalk 应用程序?

php - : when placed before execution, PDO准备好的语句是否进行多次sql调用到底是什么

php cli 没有apache?

php - pdo->query() 返回每个结果中的两个?